ファイル.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.txt
1行ずつ読み取られ、各行に分かれた3つのフィールドが3つの変数と:
読み込まれます。行にさらに - で区切られたフィールドがある場合、そのフィールドは値に追加されます。hostname
db
location
:
location
その後、コマンドを実行します。