Kısaca, for
bazı döngü kontrol değişkeninin i
belirtilen 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, fname
bir dosya adını gösteren bir dize bulunduğunu varsayalım . Her dosya adı için bir dizi komut çağırmak istiyorum. Örneğin, fname
bö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 fname
değer fname="a.txt"
, ikinci yinelemede fname
değ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}.txt
bunun yerine tercih ederim .
{}
(boşlukla ayrılmış) bir listede