Я новый пользователь 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).