Risposte:
Mentre l'espansione del rinforzo come ha {1,2}
avuto origine csh
alla fine degli anni '70 e ha trovato la sua strada verso le conchiglie simili a Bourne nella bash
/ zsh
/ pdksh
alla fine degli anni '80, all'inizio degli anni '90, la {n1..n2}
variante è arrivata prima zsh
nel 1995 (2.6-beta4).
bash
copiato nel 2004 (3.0) e ksh93
nel 2005 ( ksh93r
).
Probabilmente la shell in cui stai provando questo non è nessuno di questi o è una versione precedente di bash
e ksh93
.
#!/bin/sh
...
/bin/sh
è bash
o ksh93
.
/bin/sh
fungono da storico sh
(è comunque ciò che dice la pagina man di bash). Non ho controllato ksh
la pagina man, ma sono sicuro che si comporterà di conseguenza.
zsh
). Un'altra soluzione alternativa sarebbe usare qualcosa come "mkdir $ (seq 1 10)".
{x..y}
L'espansione del range range è implementata in bash 3.0-alpha. Per aiutare noi e te stesso, ti preghiamo di mostrare i tuoi echo "$BASH_VERSION"
risultati.
Quindi la risposta: se mkdir {1..10}
crea una directory con il nome, {1..10}
allora stai usando una versione bash precedente bash 3.0-alpha
. In tal caso puoi usare una costruzione per il ciclo come:
for ((i=1;i<=10; i++)); do mkdir "$i"; done
Controlla la tua versione di 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>
Controlla anche che mkdir
non siano stati alias in qualche modo strano:
$ alias |grep mkdir
alias md='mkdir'
mkdir {1..10}
funziona per me, crea dieci dir.