很少自己寫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