2013-07-19 6 views
23

Ich habe den folgenden Code in einer .sh-Datei:bash for-Schleife: eine Reihe von Zahlen

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

, die von 1 bis 10. drucken Zahlen sollten aber das ist, was ich bekommen:

{1..10} 

auch C-ähnliche sytax mit nicht funktioniert auch:

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

Das bin ich einen Fehler bekommt:

Die Version von Bash, die ich habe, ist 4.2.25.

+0

Ihr Code funktioniert in 4.1.5 –

+0

für mich in Ordnung können Sie auch eine Reihe drucken von Zahlen mit Seq. Versuchen Sie "Seq 1 5". – devnull

+0

Wenn Sie 'bash' als' sh' ausführen, wird es nicht funktionieren; Wenn Sie 'bash' als' bash' ausführen, wird es funktionieren. –

Antwort

35

sollte der Code wie folgt aussehen (beachten Sie die shebang bash sagt, nicht sh):

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

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

+0

Dies: (beachten Sie die Shebang sagt bash, nicht sh) –

+2

Die '..1' ist unnötig. –

+0

zumindest sieht es für mich aus, dass er ein Shell-Skript auf einer Bash-Shell ausführt. – Pradheep

Verwandte Themen