ファイルの内容を1行ずつ使用して実行します。

ファイルの内容を1行ずつ使用して実行します。

ファイル.txt

servername1:DBNAME1:/u01/app
servername2:DBNAME2:/u01/dbs
servername3:DBNAME3:/u01/app1

上記のファイルの内容を1行ずつ使用してシェルスクリプトで実行したい

command1 hostname=servername1 db=dbanme1 location=/u01/app 
command2 hostname=servername1 db=dbanme1 location=/u01/app

上記のコマンドの後、2番目の行の値を取得して実行する必要があります。

ベストアンサー1

while IFS=':' read -r hostname db location
do
    set -- hostname="$hostname" db="$db" location="$location"
    command1 "$@"
    command2 "$@"
done <file.txt

または、位置パラメータを保存する必要がある場合

while IFS=':' read -r hostname db location
do
    command1 hostname="$hostname" db="$db" location="$location"
    command2 hostname="$hostname" db="$db" location="$location"
done <file.txt

どちらもfile.txt1行ずつ読み取られ、各行に分かれた3つのフィールドが3つの変数と:読み込まれます。行にさらに - で区切られたフィールドがある場合、そのフィールドは値に追加されます。hostnamedblocation:location

その後、コマンドを実行します。

おすすめ記事