Respostas:
Embora a expansão da braçadeira se {1,2}origine no cshfinal dos anos 70 e tenha chegado às conchas do tipo Bourne no bash/ zsh/ pdkshno final dos anos 80, início dos anos 90, a {n1..n2}variante surgiu mais tarde zshem 1995 (2,6-beta4).
bashcopiou-o em 2004 (3.0) e ksh93em 2005 ( ksh93r).
Provavelmente o shell em que você está tentando isso não é um desses ou é uma versão mais antiga do bashe ksh93.
#!/bin/sh...
/bin/shé bashou ksh93.
/bin/sh funcionam como históricos sh(é o que a página de manual do bash diz mesmo assim). Não verifiquei ksha página de manual, mas tenho certeza de que ela se comportará de acordo.
zsh) primeiro. Outra solução alternativa seria usar algo como "mkdir $ (seq 1 10)".
{x..y}A expansão do intervalo de chaves é implementada no bash 3.0-alpha. Para nos ajudar e a si mesmo, por favor, mostre sua echo "$BASH_VERSION"saída.
Então a resposta: Se mkdir {1..10}cria um dir com o nome {1..10}, você está usando uma versão do bash anterior bash 3.0-alpha. Nesse caso, você pode usar uma construção de loop for como:
for ((i=1;i<=10; i++)); do mkdir "$i"; done
Verifique sua versão do 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>
Verifique também mkdirse não há aliases de alguma maneira estranha:
$ alias |grep mkdir
alias md='mkdir'
mkdir {1..10}funciona para mim, cria dez dirs.