2011-04-07 111 views
0

我的for循環不工作:for循環不工作

#!/bin/sh 
for ((count=2; count < 5; count++)) 
do 
    parameter=$count 
    echo $parameter 
done 

錯誤:

./new.sh: syntax error at line 2: `(' unexpected

回答

3

(())結構是不是POSIX。如果您需要,您必須使用像#!/bin/bash這樣的口譯員。

的POSIX替代的,這將是:

for count in 2 3 4; do 
    parameter=$count 
    echo $parameter 
done 

或者

for count in $(seq 2 4); do 
    parameter=$count 
    echo $parameter 
done 

後者是在調用外部二進制(seq

+0

的成本更具可擴展性。如果我想要的條件像「for((count = 2; count sap 2011-04-07 08:52:39

+1

@sap:如果使用'bash',那麼就是你放的東西。如果使用POSIX shell,則在$(seq 2 $ NumberOfTimes)中計數; ($ seq 2 4);# – SiegeX 2011-04-07 09:04:15

+0

#!/ bin/sh for count in $(seq 2 4); 做 參數= $算 回聲$參數 做 錯誤:./ test.sh:語法錯誤在第3行:'$」意外 – sap 2011-04-07 09:08:36