Preciso fazer alguma configuração para iniciar a expansão de chaves? Quando corro mkdir {1..10}
, ele apenas cria uma nomeação de diretório {1..10}
.
shell
brace-expansion
user43312
fonte
fonte
mkdir {1..10}
funciona para mim, cria dez dirs.echo ${SHELL}
para tornar esta pergunta capaz de obter uma resposta útil.Respostas:
Embora a expansão da braçadeira se
{1,2}
origine nocsh
final dos anos 70 e tenha chegado às conchas do tipo Bourne nobash
/zsh
/pdksh
no final dos anos 80, início dos anos 90, a{n1..n2}
variante surgiu mais tardezsh
em 1995 (2,6-beta4).bash
copiou-o em 2004 (3.0) eksh93
em 2005 (ksh93r
).Provavelmente o shell em que você está tentando isso não é um desses ou é uma versão mais antiga do
bash
eksh93
.fonte
#!/bin/sh
.../bin/sh
ébash
ouksh93
./bin/sh
funcionam como históricossh
(é o que a página de manual do bash diz mesmo assim). Não verifiqueiksh
a 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 suaecho "$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 anteriorbash 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
fonte
Verifique sua versão do Bash:
Verifique também
mkdir
se não há aliases de alguma maneira estranha:fonte