なぜ「整数式が必要です」と言うのか理解できません。

なぜ「整数式が必要です」と言うのか理解できません。

だからこれは私のコードです

#!bin/bash

PS3='Pick the one you like and we will continue: '

select color in "Blue" "Black" "Orange" "Yellow"
do
echo "You selected $color"
break
done

echo

var=":"

echo "Alrighty, please type in the password as you have specified the    color $color"

read var

until  [ "$var" -ne password ] 
do
echo "You have specified a wrong password, and a wrong color please leave the script the script"
break
done

端末は次のように応答します。

1) Blue
2) Black
3) Orange
4) Yellow
Pick the one you like and we will continue: 1
You selected Blue

Alrighty, please type in the password as you have specified the color Blue
23
/root/Desktop/Bash/Test_1.sh: line 16: [: password: integer expression  expected
You have specified a wrong password, and a wrong color please leave the script

ベストアンサー1

あなたは仕事を:

[ "$var" -ne password ]

-ne[(等しくない)は、つまり両方が整数であると予想する整数演算子です。

ただし、var=":"最初はreadユーザー入力を-ingして入れると入力が整数ではvarないため、エラーメッセージが表示されることがあります。

とにかく整数であれば、それpassword自体が文字列であるため、チェックは失敗します。

文字列が等しいかどうかを比較したい場合、演算子は次のようになります=

[ "$var" = password ]

不平等:

[ "$var" != password ]

おすすめ記事