ファイル名をパラメーターとして取るシェルスクリプトを作成しました(例:user/test.txt)。ユーザーが「なし」と指定できるファイル名を提供したくない場合は、このファイルパラメータをオプションにします。
スクリプト内で、ファイル名パラメータに「なし」が含まれているかどうかを確認しています
if [ $filename -eq "NONE" ];then
cmd;
fi
パラメータスクリプトとして "None"が渡されると正常に動作しますが、user/test.txtが渡されると、コンソールに出力したくないエラーメッセージが表示されます
arithmetic syntax error
誰か助けてもらえますか?
[ 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
が必要です。