[問題] Shell script有幾種寫法

作者: globalhawk (Cory)   2014-07-29 15:14:44
最近遇到的詭異問題
照裡說script前端宣告了 #!/bin/bach 後
應該只有一種寫法吧?!
可是我發現我寫 if 條件判斷的時候...
完全不能使用一般資料上寫的 if[條件]; then
那樣子會syntax error
後來我摸了很久 才發現用 if expr (條件); then 可以
可是好像沒人介紹這種寫法啊 我是自己亂湊湊出來的
我用的版本是Fedora 14 / 16 ... 目前試起來都這樣
作者: carylorrk (carylorrk)   2014-07-29 15:26:00
bash? 我猜你 [] 裏面沒有空格纔會出問題?
作者: CaptainH (Cannon)   2014-07-29 15:26:00
if 和 [ ] 之間都要空格
作者: justdoitmmo (伊劍)   2014-07-29 15:28:00
空格很重要,沒空都會出問題
作者: carylorrk (carylorrk)   2014-07-29 15:36:00
沒記錯的話 expr 比較類似 (()) 是數值計算用
作者: globalhawk (Cory)   2014-07-29 17:41:00
我空格不空格都試過了 玩好久再試試看好了 :p
作者: Tormentor   2014-07-29 17:54:00
貼出來看看?
作者: globalhawk (Cory)   2014-07-29 19:20:00
哈 ... 好像真的是空格... 不知道它那parser怎寫的
作者: lantw44 (#######################)   2014-07-29 19:55:00
因為 [ 本身是一個指令 ......
作者: prismwu   2014-07-29 20:26:00
[ is a shell builtin
作者: bitlife (BIT一生)   2014-07-30 07:43:00
直譯式(interpreter)的parser為求效率,語法限制多些很合理
作者: globalhawk (Cory)   2014-07-30 11:36:00
是啊...限制多一點parser可以簡單一點
作者: OPIV (Monitor)   2014-08-08 12:14:00
#!/bin/bash

Links booklink

Contact Us: admin [ a t ] ucptt.com