for
Bashでは、いくつかのループ制御変数がi
指定された整数を繰り返すループを作成することが可能であることがわかります。たとえば、1 ~ 10 の整数を印刷する bash シェルスクリプトを作成できます。
#!/bin/bash
for i in {1..10}
do
echo $i
done
文字列リストを指定したら、文字列であるループ制御変数を繰り返すことはできますか?たとえば、fname
ファイル名を表す文字列があるとします。各ファイル名に対して一連のコマンドを呼び出したい。たとえば、次の内容を印刷したいとしますfname
。
#!/bin/bash
for fname in {"a.txt", "b.txt", "c.txt"}
do
echo $fname
done
つまり、最初の反復ではfname
値がなければならず、fname="a.txt"
2番目の反復ではfname
値があるはずfname="b.txt"
です。残念ながら、上記の構文は正しくないようです。出力を得たいです。
a.txt
b.txt
c.txt
ただし、上記のコードを試してみると、次のような結果が表示されます。
{a.txt,
b.txt,
c.txt}
変数の値/内容を繰り返し変更できるように正しい構文を決定するのに役立ちますかfname
?時間をいただきありがとうございます。
ベストアンサー1
正しい構文は次のとおりです。
#!/bin/bash
for fname in a.txt b.txt c.txt
do
echo $fname
done