./txtdb: 行9: [: =: 単項演算子が必要

./txtdb: 行9: [: =: 単項演算子が必要
echo "Choose from the following options"
echo "1- Display full Database"
echo "2 - exit program"
read usrChoice
if [ $usrChoice  -eq 1 ] ; then
        cat energydrink.txt
elif [ $userChoice -eq  2 ]
then
        echo "you chose the option 2"
else
        echo "Please choose a viable command"
fi

なぜこのようなエラーが発生し続けるのかわかりません。 1と入力するとスクリプトは機能しますが、2と入力するとこのエラーが発生します。

./txtdb: 行9: [: =: 単項演算子が必要です。実行可能なコマンドを選択してください。

答え1

変数を参照してください。

引用符がなく、空の変数

[ $UserChoice -eq 1 ]
-bash: [: -eq: unary operator expected

引用されましたが、変数は空です。

[ "$UserChoice" -eq 1 ]
-bash: [: : integer expression expected

関連情報