シェルスクリプトでforループを実行する

シェルスクリプトでforループを実行する

これを達成するための最良の方法が何であるかを知りたいです。

次のデータを含むファイルがあります。

server1   
chl(abc.123) chltype(RCVR)
chl(xyz.123) chltype(RCVR)
server2
chl(abc.000) chltype(RCVR)
chl(abc.999) chltype(RCVR)
chl(xyz.456) chltype(RCVR)

これでこれを行うためのスクリプトを実行したいと思います。

サーバー1にSSHとして接続し、サーバー1にリストされているコマンドに対して次のコマンドを実行し、サーバー2にSSHとして接続し、サーバー2にリストされているコマンドに対して次のコマンドを実行します.

たとえば、サーバー1

echo chl(abc.123) chltype(RCVR)

ベストアンサー1

次のことができます。

while IFS= read -r line; do
    if [[ ${line} =~ ^server\d+$ ]] ; then
        server=${line}
        continue
    fi
    ssh ${server} "echo ${line}"
done

ファイル形式が変更されていないとします。

おすすめ記事