ファイル[重複]の項目リストに対してbashでコマンドを実行します。

ファイル[重複]の項目リストに対してbashでコマンドを実行します。

私が使用して構築する1つ以上のサーバーのホスト名を一覧hostname_list表示するファイルがあります。これで、ホスト名に対してコマンドを実行する必要があります。テストとして、リスト内の各サーバーに対してpingを実行しようとしています。grepawksalttest.ping

forループで試してみましたが、正しく動作しません。

私はいくつかのバリエーションを試しました。

for i in hostname_list
do 
    salt $i test.ping
done

答え1

これがhostname_list1行に1つのホスト名を含むテキストファイルであると仮定すると、次のコマンドを使用できます。

while read -r line
do
    [[ -n "$line" ]] && salt $line test.ping
done < hostname_list

この[[ -n "$line" ]]文は、次のコマンドを実行する前にその行が空であることを確認します。

関連情報