2013-05-26 56 views
-1

爲什麼這麼簡單的腳本不起作用?bash If-else on Mac

1 for i in {1..6} 
    2 do 
    3  if[ "$i" -lt "3" ] 
    4  then 
    5   echo "a" 
    6  else 
    7   echo "b" 
    8  fi 
    9 done 

1 for i in {1..6} 
    2 do 
    3  if[ "$i" < 3 ] 
    4  then 
    5   echo "a" 
    6  else 
    7   echo "b" 
    8  fi 
    9 done 

錯誤:

./test.sh: line 4: syntax error near unexpected token `then' 
./test.sh: line 4: ` then' 
+1

你得到的錯誤是什麼? '如果[「$ i」<3]'不是有效的bash – Bill

+0

'如果'和'['必須在它們之間有空格! –

回答

12

你需要if[之間的空間。

+0

換句話說,命令和它的第一個參數之間有一個空格。一如既往。 –

+0

謝謝!如何使用「<」而不是「-lt」?什麼是正確的方法? – JackWM

+0

@JackWM:使用'-lt'。 '<'做了字典型的字符串比較,並且需要以某種方式轉義(例如'\ <'或''<'')。 –