Apakah saya harus melakukan konfigurasi untuk memulai ekspansi brace? Ketika saya menjalankan mkdir {1..10}
, itu hanya membuat penamaan dir {1..10}
.
shell
brace-expansion
pengguna43312
sumber
sumber
mkdir {1..10}
bekerja untuk saya, itu menciptakan sepuluh dir.echo ${SHELL}
membuat pertanyaan ini bisa mendapatkan jawaban yang bermanfaat.Jawaban:
Sementara ekspansi brace seperti
{1,2}
berasal dicsh
akhir 70-an, dan menemukan jalan ke shell Bourne-like dibash
/zsh
/pdksh
di akhir 80-an, awal 90-an,{n1..n2}
varian datang kemudian pertamazsh
pada 1995 (2,6-beta4).bash
disalin pada 2004 (3.0) danksh93
2005 (ksh93r
).Mungkin shell yang Anda coba ini bukan dari mereka atau versi yang lebih lama dari
bash
danksh93
.sumber
#!/bin/sh
.../bin/sh
adalahbash
atauksh93
./bin/sh
bertindak sebagai bersejarahsh
(itu adalah apa yang dikatakan halaman bash man). Belum memeriksaksh
halaman manual, tapi saya yakin itu akan berperilaku sesuai.zsh
) terlebih dahulu. Solusi lain adalah dengan menggunakan sesuatu seperti "mkdir $ (seq 1 10)".{x..y}
Ekspansi range brace diimplementasikan dalam bash 3.0-alpha. Untuk membantu kami dan diri Anda sendiri, tolong tunjukkanecho "$BASH_VERSION"
hasil Anda .Maka jawabannya: Jika
mkdir {1..10}
membuat dir dengan nama{1..10}
maka Anda menggunakan versi bash sebelumnyabash 3.0-alpha
. Dalam hal ini Anda dapat menggunakan konstruksi for for sebagai:for ((i=1;i<=10; i++)); do mkdir "$i"; done
sumber
Periksa versi Bash Anda:
Juga periksa apakah
mkdir
belum alias dengan cara yang aneh:sumber