$(echo $RANDOM | cut -b 1-2) はシェルスクリプトから空行を返します。

$(echo $RANDOM | cut -b 1-2) はシェルスクリプトから空行を返します。

このスクリプトがあります。

#!/bin/sh
guess=$(echo $RANDOM | cut -b 1-2)

read -p "Im thinking of a number, can you guess what it is? " number

case "$number" in
    "$guess") echo "\nCongratulation number guessed corectly!"
        exit 0
        ;;
    *) echo "\nIncorrect number guessed, try again? [yes or no]"
        read yesorno
        case "$yesorno" in
            "yes") sh guess.sh
                ;;
            "no") echo "\nHave a nice day!"
                exit 0
                ;;
            *) echo "Invalid input"
                exit 1
                ;;
        esac
        ;;
esac

$ guess変数は2桁の数字を返す必要がありますが、nullを返します。sh guess.sh正確な数字を推測するのではなく、ゲームを実行してEnterキーを押すと、おめでとうメッセージが返されます。私はどこで間違っていますか?

ベストアンサー1

bash代わりに使用sh

guess=$(echo $RANDOM | cut -b 1-2)
             ^-----^ SC3028: In POSIX sh, RANDOM is undefined.

おすすめ記事