echo {Z..A}; out {Z..A};Почему?

echo {Z..A}; out {Z..A};Почему?

Я новый пользователь Ubuntu. Я читаю эту книгу "Командная строка Linux: Полное введение" и практикуюсь в коде. Это весело, но у меня возникли проблемы в Главе 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}
➜  ~ 

Я не могу получить диапазон букв. Почему? Как это исправить? Мой shell — oh-my-zsh.

решение1

ЭтокшБаш) функция и может отсутствовать втвойоболочка, например,бросаться(оболочка по умолчанию, используемая в Debian/Ubuntu).

Чтобы увидеть разницу, попробуйте

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

Значение по умолчанию /bin/shв Debian указывает на dash. Но если вы работаете в оболочке bash, вы увидите, что последовательности развернуты, как и ожидалось. Начинающиеся скрипты #!/bin/shбудут использовать dash.

На моем Debian 7 zshтакже не расширяет последовательность. (Я проверил ksh, bash, dash и zsh).

Связанный контент