Нужно ли делать какие-либо настройки, чтобы начать расширение скобки? Когда я бегу mkdir {1..10}
, он просто создает имя dir {1..10}
.
shell
brace-expansion
user43312
источник
источник
mkdir {1..10}
работает для меня, создает десять режиссеров.echo ${SHELL}
чтобы сделать этот вопрос способным получить полезный ответ.Ответы:
В то время как в фигурных скобках , как
{1,2}
берет свое начало вcsh
в конце 70 - х годов, и нашел свой путь к Bourne-подобных оболочек вbash
/zsh
/pdksh
в конце 80 - х, начале 90-х годов{n1..n2}
вариант пришел позже первым вzsh
в 1995 году (2,6-Beta4).bash
скопировал его в 2004 году (3.0) иksh93
в 2005 году (ksh93r
).Вероятно, оболочка, в которой вы пытаетесь это сделать, не относится ни к одной из этих версий или к более старой версии
bash
иksh93
.источник
#!/bin/sh
.../bin/sh
естьbash
илиksh93
./bin/sh
действующая как историческаяsh
(это то, что в любом случае говорится на странице руководства bash). Не проверялksh
справочную страницу, но я уверен, что она будет вести себя соответственно.zsh
). Другой обходной путь - использовать что-то вроде «mkdir $ (seq 1 10)».{x..y}
Расширение диапазона скобок реализовано в bash 3.0-alpha. Чтобы помочь нам и себе, пожалуйста, покажите своиecho "$BASH_VERSION"
результаты.Тогда ответ: Если
mkdir {1..10}
создает каталог с именем,{1..10}
то вы используете ранее версию Bashbash 3.0-alpha
. В этом случае вы можете использовать для конструкции цикла как:for ((i=1;i<=10; i++)); do mkdir "$i"; done
источник
Проверьте версию Bash:
Также проверьте, что
mkdir
это не было псевдонимами каким-то странным образом:источник