Dalam bash, saya tahu bahwa adalah mungkin untuk menulis forloop di mana beberapa variabel kontrol loop iberulang di atas bilangan bulat yang ditentukan. Misalnya, saya bisa menulis skrip bash shell yang mencetak bilangan bulat antara 1 dan 10:
#!/bin/bash
for i in {1..10}
do
echo $i
done
Apakah mungkin untuk beralih di atas variabel kontrol loop yang merupakan string, jika saya memberikan daftar string? Misalnya, anggap saya memiliki string fnameyang mewakili nama file. Saya ingin memanggil satu set perintah untuk setiap nama file. Misalnya, saya mungkin ingin mencetak konten fnamemenggunakan perintah seperti ini:
#!/bin/bash
for fname in {"a.txt", "b.txt", "c.txt"}
do
echo $fname
done
Dengan kata lain, pada iterasi pertama, fnameharus memiliki nilai fname="a.txt", sedangkan pada iterasi kedua, fnameharus memiliki nilai fname="b.txt", dan seterusnya. Sayangnya, tampaknya sintaks di atas tidak sepenuhnya benar. Saya ingin mendapatkan output:
a.txt
b.txt
c.txt
tetapi ketika saya mencoba kode di atas, saya mendapatkan output ini:
{a.txt,
b.txt,
c.txt}
Bisakah Anda membantu saya menentukan sintaks yang benar, sehingga saya bisa mengubah nilai / konten variabel secara berulang fname? Terima kasih atas waktu Anda.
{} dan yang ,s. Alternatifnya adalah menghapus spasi. Jadi salah satu "a.txt" "b.txt" "c.txt"atau {"a.txt","b.txt","c.txt"}. Tapi saya lebih suka {a..c}.txtsebagai gantinya.
{}, Anda tidak perlu apa pun untuk mengulang daftar (dibatasi-ruang)