web-dev-qa-db-ja.com

文字列比較の算術構文エラー

ファイル名をパラメーターとして取るシェルスクリプトを作成しました(例:user/test.txt)。ユーザーが「なし」と指定できるファイル名を提供したくない場合は、このファイルパラメータをオプションにします。

スクリプト内で、ファイル名パラメータに「なし」が含まれているかどうかを確認しています

if [ $filename -eq "NONE" ];then
cmd;
fi

パラメータスクリプトとして "None"が渡されると正常に動作しますが、user/test.txtが渡されると、コンソールに出力したくないエラーメッセージが表示されます

arithmetic syntax error

誰か助けてもらえますか?

3

[ bla bla bla ]test bla bla blaと同等です。

man testから

   STRING1 = STRING2
          the strings are equal

   STRING1 != STRING2
          the strings are not equal

   INTEGER1 -eq INTEGER2
          INTEGER1 is equal to INTEGER2

したがって、=ではなく-eqが必要です。

7
ctrl-alt-delor