Bash腳本的空格和“期待一元表達式”錯誤


很少自己寫Bash腳本,一寫就出現了一些奇怪的問題,主要還是對Bash腳本的語法不夠熟悉,畢竟很少使用。

當做記錄一下吧,今天因爲空格導致的一些腳本問題:


1、Bash腳本中的賦值符號“=”前後不能有空格。例如給變量number賦值要寫成“number=1”,不能寫成“number = 1”。大多數編程語言都會忽略掉一些沒有意義的空格,例如對於Java語言上面兩種寫法在語法上都是正確,但是Bash腳本不會。


2、Bash腳本中的“["和"];"中括號是個語法標識符,前後一定要留空格。例如:if [ "$number" -el 1 ]" then... 如果前後沒有空格就會導致語法錯誤,提示”期待一元表達式“或者缺少一部分中括號之類的一些語法錯誤。


另外還有很多Bash常見的語法陷阱,以下兩篇博文總結的挺好,別人辛辛苦苦寫的文章我就不抄過來了,感興趣的童鞋請移步:

1、Bash的陷阱:http://blog.charlee.li/bash-pitfalls/

2、Bash空格的那些事:http://www.igigo.net/post/archives/152

發佈了69 篇原創文章 · 獲贊 101 · 訪問量 63萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章