2013-07-19 37 views
23

我在sh文件下面的代碼:bash的for循環:一個數字範圍

for num in {1..10} 
do 
    echo $num 
done 

應從1打印號碼10。但是,這是我得到:

{1..10} 

此外,使用類似C的語法時纔不工作,以及:

for ((i=1; i<=10; i++)) 

這讓我的錯誤:

Syntax error: Bad for loop variable 

我有bash的版本是4.2.25。

+0

您的代碼工作正常,我在4.1.5 –

+0

您也可以打印範圍使用seq的數字。嘗試「seq 1 5」。 – devnull

+0

如果'sh'執行'bash',則不起作用;如果你執行'bash'作爲'bash',它就會起作用。 –

回答

35

的代碼應該如下(注意家當說bash,不sh):

#!/bin/bash 
echo "Bash version ${BASH_VERSION}..." 
for i in {0..10..1} 
    do 
     echo "Welcome $i times" 
done 

http://www.cyberciti.biz/faq/bash-for-loop/

+0

這:(注意shebang說bash,不是sh) –

+2

'..1'是不必要的。 –

+0

至少它在我看來他正在bash shell上執行一個shell腳本。 – Pradheep