
Eu tenho um arquivo abc.txt
assim em uma máquina Linux:
abc|yes|50c|1|pending
bcd|no|100c|2|pending
cde|yes|45c|3|pending
def|no|44c|3|pending
Tenho que chamar um script1.ksh
com o 3º campo como parâmetro, executar todos os scripts em paralelo e se algum script falhar ele deve atualizar o último campo de pendente para FAILED/SUCCESS.
Eu usei a linha while read para extrair o terceiro campo na variável 'var1' do arquivo e executar o script e atualizar o 5º CAMPO DE PENDENTE PARA SUCESSO/FALHA. mas todos os scripts estão sendo executados em série e não em paralelo
ksh script1.ksh 50c
ksh script1.ksh 100c
ksh script1.ksh 45c
ksh script1.ksh 44c
Responder1
Basta executar os scripts em segundo plano:
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