Risposte:
Mentre l'espansione del rinforzo come ha {1,2}avuto origine cshalla fine degli anni '70 e ha trovato la sua strada verso le conchiglie simili a Bourne nella bash/ zsh/ pdkshalla fine degli anni '80, all'inizio degli anni '90, la {n1..n2}variante è arrivata prima zshnel 1995 (2.6-beta4).
bashcopiato nel 2004 (3.0) e ksh93nel 2005 ( ksh93r).
Probabilmente la shell in cui stai provando questo non è nessuno di questi o è una versione precedente di bashe ksh93.
#!/bin/sh...
/bin/shè basho ksh93.
/bin/sh fungono da storico sh(è comunque ciò che dice la pagina man di bash). Non ho controllato kshla 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 mkdirnon siano stati alias in qualche modo strano:
$ alias |grep mkdir
alias md='mkdir'
mkdir {1..10}funziona per me, crea dieci dir.