Bash シェルスクリプトで文字列値を繰り返す for ループを作成します。

Bash シェルスクリプトで文字列値を繰り返す for ループを作成します。

forBashでは、いくつかのループ制御変数が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

おすすめ記事