1
バックグラウンドで複数のbash関数を実行し、それらが戻るまで待機する
これは、nvidia-smi複数のホストでコマンドを実行し、その出力を共通ファイルに保存する単純なスクリプトです。ここでの目標は、非同期で実行することです。 ある&の終わりにprocess_host()十分な関数の呼び出し?私のスクリプトは正しいですか? #!/bin/bash HOSTS=(host1 host2 host3) OUTPUT_FILE=nvidia_smi.txt rm $OUTPUT_FILE process_host() { host=$1 echo "Processing" $host output=`ssh ${host} nvidia-smi` echo ${host} >> $OUTPUT_FILE echo "$output" >> $OUTPUT_FILE } for host in ${HOSTS[@]}; do process_host ${host} & done; wait cat $OUTPUT_FILE