¿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}.
echo ${SHELL}para hacer que esta pregunta pueda obtener una respuesta útil.
¿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}.
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 a cshfines de los años 70, y se abrió camino hacia las conchas tipo Bourne en bash/ zsh/ pdksha fines de los 80, principios de los 90, la {n1..n2}variante llegó primero zshen 1995 (2.6-beta4).
bashlo copié en 2004 (3.0) y ksh93en 2005 ( ksh93r).
Probablemente el shell en el que intentas esto no es ninguno de esos o es una versión anterior de bashy ksh93.
#!/bin/sh...
/bin/shes basho ksh93.
/bin/sh actúan como históricos sh(es lo que dice la página de manual de bash de todos modos). No he revisado kshla 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 su echo "$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 anterior bash 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
Verifique su versión de 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>
También verifique que mkdirno haya habido alias de alguna manera extraña:
$ alias |grep mkdir
alias md='mkdir'
mkdir {1..10}funciona para mí, crea diez directorios.