Bisakah saya menggunakan variabel di dalam {}
ekspansi tanpa menarik eval
? Jika demikian, bagaimana?
Ini tidak berhasil:
$ touch 1.foo 1.bar
$ ls 1.{foo,bar}
1.bar 1.foo
$ extensions=foo,bar
$ ls 1.{$extensions}
ls: cannot access 1.{foo,bar}: No such file or directory
Ini bekerja dengan eval
:
$ eval ls 1.{$extensions}
1.bar 1.foo
Jawaban yang Diterima:
Ekspansi penjepit terjadi sangat awal selama ekspansi (hal pertama, sebenarnya), sebelum ekspansi variabel. Untuk melakukan ekspansi brace pada hasil ekspansi variabel, Anda perlu menggunakan eval
.
Anda dapat mencapai efek yang sama tanpa eval
jika Anda membuat extensions
pola wildcard bukan pola brace. Setel extglob
opsi untuk mengaktifkan pola seperti ksh.
shopt -s extglob
extensions='@(foo|bar)'
ls 1.$extensions
Pkexec – Bagaimana Cara Mengatur Batas Waktu Khusus Untuk Auth_admin_keep Saat Menulis Kebijakan Pkexec?
Bagaimana Cara Menambahkan/Memperbarui File Ke Arsip Tar.gz yang Ada?