ファイルから入力を取得するためにdiffパラメータを使用してスクリプトを並列に実行するにはどうすればよいですか?

ファイルから入力を取得するためにdiffパラメータを使用してスクリプトを並列に実行するにはどうすればよいですか?

abc.txtLinuxシステムには次のファイルがあります。

abc|yes|50c|1|pending
bcd|no|100c|2|pending
cde|yes|45c|3|pending
def|no|44c|3|pending

3番目のフィールドをパラメータとして呼び出し、script1.kshすべてのスクリプトを並列に実行し、スクリプトが失敗した場合は、最後のフィールドを保留中の失敗/成功に更新する必要があります。

while read行を使用して、ファイルの3番目のフィールドを「var1」変数として抽出し、スクリプトを実行し、5番目のフィールドを保留から成功/失敗に更新しました。ただし、すべてのスクリプトは並列ではなくシリアルで実行されます。

ksh script1.ksh 50c    
ksh script1.ksh 100c    
ksh script1.ksh 45c    
ksh script1.ksh 44c 

ベストアンサー1

バックグラウンドでスクリプトを実行するだけです。

while IFS='|' read -r  name yno arg rest; do 
    ksh script1.ksh "$arg" && 
    status=SUCCESS || status=FAILED &&
    sed -i "/^$name|/{s/pending/$status/}" file &
done < file

おすすめ記事