[問題] Shell script有幾種寫法

看板Linux作者 (Cory)時間10年前 (2014/07/29 15:14), 編輯推噓1(1013)
留言14則, 9人參與, 最新討論串1/1
最近遇到的詭異問題 照裡說script前端宣告了 #!/bin/bach 後 應該只有一種寫法吧?! 可是我發現我寫 if 條件判斷的時候... 完全不能使用一般資料上寫的 if[條件]; then 那樣子會syntax error 後來我摸了很久 才發現用 if expr (條件); then 可以 可是好像沒人介紹這種寫法啊 我是自己亂湊湊出來的 我用的版本是Fedora 14 / 16 ... 目前試起來都這樣 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 163.13.127.136 ※ 文章網址: http://www.ptt.cc/bbs/Linux/M.1406618086.A.6B1.html

07/29 15:26, , 1F
bash? 我猜你 [] 裏面沒有空格纔會出問題?
07/29 15:26, 1F

07/29 15:26, , 2F
if 和 [ ] 之間都要空格
07/29 15:26, 2F

07/29 15:26, , 3F
常見的有 test [] [[]]...細節上有差別
07/29 15:26, 3F

07/29 15:28, , 4F
空格很重要,沒空都會出問題
07/29 15:28, 4F

07/29 15:36, , 5F
沒記錯的話 expr 比較類似 (()) 是數值計算用
07/29 15:36, 5F

07/29 17:41, , 6F
我空格不空格都試過了 玩好久
07/29 17:41, 6F

07/29 17:48, , 7F
再試試看好了 :p
07/29 17:48, 7F

07/29 17:54, , 8F
貼出來看看?
07/29 17:54, 8F

07/29 19:20, , 9F
哈 ... 好像真的是空格... 不知道它那parser怎寫的
07/29 19:20, 9F

07/29 19:55, , 10F
因為 [ 本身是一個指令 ......
07/29 19:55, 10F

07/29 20:26, , 11F
[ is a shell builtin
07/29 20:26, 11F

07/30 07:43, , 12F
直譯式(interpreter)的parser為求效率,語法限制多些很合理
07/30 07:43, 12F

07/30 11:36, , 13F
是啊...限制多一點parser可以簡單一點
07/30 11:36, 13F

08/08 12:14, , 14F
#!/bin/bash
08/08 12:14, 14F
文章代碼(AID): #1JrqdcQn (Linux)