./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

관련 정보