Kısaca, forbazı döngü kontrol değişkeninin ibelirtilen tamsayılar üzerinde yinelendiği bir döngü yazmanın mümkün olduğunu biliyorum . Örneğin, 1 ile 10 arasındaki tam sayıları basan bir bash shell betiği yazabilirim:
#!/bin/bash
for i in {1..10}
do
echo $i
done
Dizelerin listesini sağlarsam, bunun yerine, dize olan bir döngü kontrol değişkeni üzerinde yineleme yapmak mümkün müdür? Örneğin, fnamebir dosya adını gösteren bir dize bulunduğunu varsayalım . Her dosya adı için bir dizi komut çağırmak istiyorum. Örneğin, fnameböyle bir komutu kullanarak içeriğini yazdırmak isteyebilirim :
#!/bin/bash
for fname in {"a.txt", "b.txt", "c.txt"}
do
echo $fname
done
Başka bir deyişle, ilk yinelemede fnamedeğer fname="a.txt", ikinci yinelemede fnamedeğer fname="b.txt", vb. Olmalıdır. Ne yazık ki, yukarıdaki sözdiziminin oldukça doğru olmadığı görülüyor. Çıktıyı elde etmek istiyorum:
a.txt
b.txt
c.txt
ama yukarıdaki kodu denediğimde bu çıktıyı alıyorum:
{A.txt,
b.txt,
c.txt}
Lütfen değişkenin değerini / içeriğini yinelemeli olarak değiştirebilmem için doğru sözdizimini belirlememe yardım eder misiniz fname? Zaman ayırdığınız için teşekkür ederim.
{} ve, s. Alternatif, boşlukları kaldırmaktır. Ya da "a.txt" "b.txt" "c.txt"ya {"a.txt","b.txt","c.txt"}. Ama {a..c}.txtbunun yerine tercih ederim .
{}(boşlukla ayrılmış) bir listede