0

以下は、コマンドが見つかりませんが、他の部分の値を出力するコマンドをスローする単純なifコマンドです...

-bash-3.00$ if ["$a"="10"]; then echo "hello"; else echo "hi"; fi;

出力:

-bash: [10=10]: command not found
hi

何が問題なのか教えてください。

4

1 に答える 1

3

[/]と述語式の間にスペースを追加します。

if [ "$a" = "10" ]; then echo "hello"; else echo "hi"; fi;
#   ^           ^

[プログラムです:

$ which [
/usr/bin/[

スペース[10=10]がない場合は、プログラム名として認識され、代わりに実行されます[


$ a=10
$ if [ "$a" = "10" ]; then echo "hello"; else echo "hi"; fi;
hello
$ a=20
$ if [ "$a" = "10" ]; then echo "hello"; else echo "hi"; fi;
hi
于 2013-10-25T06:13:13.977 に答える