シェルスクリプトの作成中に、スクリプトの途中にある次のif/elseステートメントで問題が発生しました。
if [ $act -eq "add" ]
then
read - "add or update: " $comm
git commit -m "$comm $file"
else
git commit -m "$act $file"
fi
返されるエラーは:
./gitup: line 13: [: add: integer expression expected
その後、スクリプトの残りの部分に進みます。 ifセグメントで変数を評価して、整数ではなく文字列入力と比較するにはどうすればよいですか。私が試した他のいくつかのことの中で "!="を使用するときは別のエラーが必要でした。
このようなもの:
act="add"
if [[ $act = "add" ]]
then
echo good
else
echo not good
fi
-eq
は数値比較用、文字列比較には=
を使用
この方法も機能します。 @Guruの回答に非常に似ていますが、二重の角括弧の必要がなくなります。
if [ "$act" == "add" ]
then
echo "Good!"
else
echo "Not good!"
fi