
abc.txt
Linux マシン上に次のようなファイルがあります:
abc|yes|50c|1|pending
bcd|no|100c|2|pending
cde|yes|45c|3|pending
def|no|44c|3|pending
script1.ksh
3 番目のフィールドをパラメータとして呼び出し、すべてのスクリプトを並行して実行し、いずれかのスクリプトが失敗した場合は、最後のフィールドを保留中から失敗/成功に更新する必要があります。
私は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