Відповіді:
Незважаючи на те, що розширення брекетів, як видається, {1,2}починається в cshкінці 70-х років, і знайде свій шлях до снарядів Борна в bash/ zsh/ pdkshв кінці 80-х, початку 90-х, {n1..n2}варіант з'явився пізніше zshв 1995 році (2,6-бета4).
bashскопіював його у 2004 році (3.0) та ksh93у 2005 році ( ksh93r).
Можливо, оболонка, з якою ви намагаєтеся це, не є жодною з цих версій або є старішою версією bashта ksh93.
#!/bin/sh...
/bin/shє bashабо ksh93.
/bin/sh виступають як історичні sh(це все одно, що говорить сторінка "bash man"). Не перевірено kshчоловічої сторінки, але я впевнений, що вона буде вести себе відповідно.
zsh). Іншим способом вирішення проблеми буде використання чогось типу "mkdir $ (seq 1 10)".
{x..y}Розширення діапазону дужок реалізовано в bash 3.0-alpha. Щоб допомогти нам і собі, покажіть свої echo "$BASH_VERSION"результати.
Тоді відповідь: Якщо mkdir {1..10}створюється dir з назвою, {1..10}тоді ви використовуєте bash версію до bash 3.0-alpha. У такому випадку ви можете використовувати для побудови циклу як:
for ((i=1;i<=10; i++)); do mkdir "$i"; done
Перевірте свою версію Bash:
$ bash -version
GNU bash, version 4.1.7(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
Також переконайтесь, що mkdirпсевдоніми не були дивним чином:
$ alias |grep mkdir
alias md='mkdir'
mkdir {1..10}працює для мене, він створює десять дiрів.