¿Tengo que hacer alguna configuración para comenzar la expansión de llaves? Cuando ejecuto mkdir {1..10}
, solo crea un nombre de directorio {1..10}
.
shell
brace-expansion
usuario43312
fuente
fuente
mkdir {1..10}
funciona para mí, crea diez directorios.echo ${SHELL}
para hacer que esta pregunta pueda obtener una respuesta útil.Respuestas:
Si bien la expansión de los aparatos ortopédicos se
{1,2}
origina acsh
fines de los años 70, y se abrió camino hacia las conchas tipo Bourne enbash
/zsh
/pdksh
a fines de los 80, principios de los 90, la{n1..n2}
variante llegó primerozsh
en 1995 (2.6-beta4).bash
lo copié en 2004 (3.0) yksh93
en 2005 (ksh93r
).Probablemente el shell en el que intentas esto no es ninguno de esos o es una versión anterior de
bash
yksh93
.fuente
#!/bin/sh
.../bin/sh
esbash
oksh93
./bin/sh
actúan como históricossh
(es lo que dice la página de manual de bash de todos modos). No he revisadoksh
la página del manual, pero estoy seguro de que se comportará en consecuencia.zsh
) primero. Otra solución alternativa sería usar algo como "mkdir $ (seq 1 10)".{x..y}
La expansión de llaves de rango se implementa en bash 3.0-alpha. Para ayudarnos a usted y a usted mismo, muestre suecho "$BASH_VERSION"
resultado.Luego la respuesta: si
mkdir {1..10}
crea un directorio con el nombre,{1..10}
entonces está utilizando una versión bash anteriorbash 3.0-alpha
. En ese caso, puede usar una construcción de bucle for como:for ((i=1;i<=10; i++)); do mkdir "$i"; done
fuente
Verifique su versión de Bash:
También verifique que
mkdir
no haya habido alias de alguna manera extraña:fuente