echo {Z..A}; out {Z..A};Warum?

echo {Z..A}; out {Z..A};Warum?

Ich bin ein neuer Ubuntu-Benutzer. Ich lese das Buch „Die Linux-Befehlszeile: Eine vollständige Einführung“ und übe den Code. Das macht Spaß, aber ich habe Probleme mit Kapitel 8:

➜  ~ echo {1..10}
1 2 3 4 5 6 7 8 9 10
➜  ~ echo {z..a}
{z..a}
➜  ~ echo {Z..A}
{Z..A}
➜  ~ echo {a..z}
{a..z}
➜  ~ 

Ich kann keinen Buchstabenbereich abrufen. Warum? Wie behebe ich das? Meine Shell ist oh-my-zsh.

Antwort1

Das ist einksh(UndSchlag) Funktion und ist möglicherweise nicht indeinSchale, zBBindestrich(Standard-Shell, die in Debian/Ubuntu verwendet wird).

Um den Unterschied zu sehen, versuchen Sie

bash -c "echo {a..z}"
dash -c "echo {a..z}"

Der Standardwert /bin/shbei Debian zeigt auf dash. Wenn Sie jedoch in einer Bash-Shell arbeiten, werden Sie die Sequenzen wie erwartet erweitert sehen. Skripte, die beginnen, #!/bin/shverwenden dash.

Unter meinem Debian 7 zshwird die Sequenz auch nicht erweitert. (Ich habe ksh, bash, dash und zsh überprüft.)

verwandte Informationen