下面是我的簡單,如果沒有找到它拋出命令的命令,但任何它打印else部分價值...IF在UNIX命令狀態下投擲的錯誤提示
-bash-3.00$ if ["$a"="10"]; then echo "hello"; else echo "hi"; fi;
輸出:
-bash: [10=10]: command not found
hi
可以在任何請讓我知道是什麼問題?
下面是我的簡單,如果沒有找到它拋出命令的命令,但任何它打印else部分價值...IF在UNIX命令狀態下投擲的錯誤提示
-bash-3.00$ if ["$a"="10"]; then echo "hello"; else echo "hi"; fi;
輸出:
-bash: [10=10]: command not found
hi
可以在任何請讓我知道是什麼問題?
添加[
/]
和謂詞表達式之間的空間:
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
我以爲他也需要使用-eq而不是=。是對的嗎 ? – Priyatham51
@ Priyatham51因爲兩個參數都被引用,=很好 – SheetJS
@Nirk謝謝你澄清這一點。 – Priyatham51
友情提醒有被自動[掉毛和分析工具(http://www.shellcheck.net)爲這些事情。 –