Die {# .. #} erzeugen eine Folge von Zahlen oder Zeichen, ähnlich wie range () in Python. Wenn ich den Befehl echo {1..5}
in der Befehlszeile ausführe , habe ich:
1 2 3 4 5
Stattdessen funktioniert das folgende Bash-Skript nicht wie erwartet.
for i in {1..3};
do
echo "Iteration $i"
done
wird drucken:
Iteration {1..3}
Warum?
* Ich könnte es gebrauchen, seq
aber ich habe gelesen, dass es veraltet ist ( http://www.cyberciti.biz/faq/bash-for-loop/ )
command-line
bash
Shake0
quelle
quelle
Antworten:
Ich habe Ihren Code ausprobiert (Kopieren und Einfügen in ein Terminal) und er ergab ein anderes Ergebnis als das, was Sie gepostet haben:
Ich benutze Linux Mint 12 Lisa (abgeleitet von Ubuntu) mit der Bash-Version 4.2.10 (1)
quelle
/bin/sh
tatsächlich auf bash zeigen, unter Debian und Ubuntu jedoch in der Regel auf/bin/dash
POSIX-kompatible, aber nicht die gleiche Syntax wie Bash unterstützende.