Réponses:
Alors que l'expansion de l'orthèse comme à son {1,2}
origine à csh
la fin des années 70, et a trouvé son chemin vers des coquilles de type Bourne dans bash
/ zsh
/ pdksh
à la fin des années 80, au début des années 90, la {n1..n2}
variante est venue plus tard zsh
en 1995 (2.6-beta4).
bash
copié en 2004 (3.0) et ksh93
en 2005 ( ksh93r
).
Probablement le shell dans lequel vous essayez ceci n'est ni l'un ni l'autre ou une ancienne version de bash
et ksh93
.
#!/bin/sh
...
/bin/sh
est bash
ou ksh93
.
/bin/sh
agissent comme l'historique sh
(c'est ce que la page de manuel bash dit de toute façon). Je n'ai pas vérifié ksh
la page de manuel de, mais je suis sûr qu'elle se comportera en conséquence.
zsh
) en premier. Une autre solution serait d'utiliser quelque chose comme "mkdir $ (seq 1 10)".
{x..y}
L'expansion de l'accolade de plage est implémentée dans bash 3.0-alpha. Pour nous aider et pour vous-même, veuillez montrer votre echo "$BASH_VERSION"
résultat.
Ensuite, la réponse: si mkdir {1..10}
crée un répertoire avec le nom, {1..10}
vous utilisez une version bash antérieure bash 3.0-alpha
. Dans ce cas, vous pouvez utiliser une construction de boucle for comme:
for ((i=1;i<=10; i++)); do mkdir "$i"; done
Vérifiez votre version 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>
Vérifiez également qu'il mkdir
n'y a pas eu d'alias d'une manière étrange:
$ alias |grep mkdir
alias md='mkdir'
mkdir {1..10}
fonctionne pour moi, il crée dix dir.