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/sh
bei Debian zeigt auf dash
. Wenn Sie jedoch in einer Bash-Shell arbeiten, werden Sie die Sequenzen wie erwartet erweitert sehen. Skripte, die beginnen, #!/bin/sh
verwenden dash
.
Unter meinem Debian 7 zsh
wird die Sequenz auch nicht erweitert. (Ich habe ksh, bash, dash und zsh überprüft.)