2013-05-26 54 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'。 '<'做了字典型的字符串比较,并且需要以某种方式转义(例如'\ <'或''<'')。 –