Shell script有幾種寫法 - Linux

Table of Contents

最近遇到的詭異問題
照裡說script前端宣告了 #!/bin/bach 後

應該只有一種寫法吧?!

可是我發現我寫 if 條件判斷的時候...
完全不能使用一般資料上寫的 if[條件]; then
那樣子會syntax error

後來我摸了很久 才發現用 if expr (條件); then 可以

可是好像沒人介紹這種寫法啊 我是自己亂湊湊出來的

我用的版本是Fedora 14 / 16 ... 目前試起來都這樣


--

All Comments

Eartha avatarEartha2014-07-31
bash? 我猜你 [] 裏面沒有空格纔會出問題?
常見的有 test [] [[]]...細節上有差別
Regina avatarRegina2014-08-02
if 和 [ ] 之間都要空格
Una avatarUna2014-08-06
空格很重要,沒空都會出問題
Puput avatarPuput2014-08-11
沒記錯的話 expr 比較類似 (()) 是數值計算用
Susan avatarSusan2014-08-14
我空格不空格都試過了 玩好久
Edwina avatarEdwina2014-08-19
再試試看好了 :p
Emily avatarEmily2014-08-20
貼出來看看?
John avatarJohn2014-08-25
哈 ... 好像真的是空格... 不知道它那parser怎寫的
Quintina avatarQuintina2014-08-26
因為 [ 本身是一個指令 ......
Bethany avatarBethany2014-08-29
[ is a shell builtin
Heather avatarHeather2014-08-31
直譯式(interpreter)的parser為求效率,語法限制多些很合理
Quanna avatarQuanna2014-09-01
是啊...限制多一點parser可以簡單一點
Irma avatarIrma2014-09-05
#!/bin/bash