
abc.txt
У меня есть такой файл на машине Linux:
abc|yes|50c|1|pending
bcd|no|100c|2|pending
cde|yes|45c|3|pending
def|no|44c|3|pending
Мне нужно вызвать a script1.ksh
с третьим полем в качестве параметра, запустить все скрипты параллельно, и если какой-либо скрипт не выполнен, он должен обновить последнее поле с pending на FAILED/SUCCESS.
Я использовал строку while read для извлечения третьего поля в переменную 'var1' из файла, запуска скрипта и обновления пятого поля с PENDING на SUCCESS/FAILED. Но все скрипты работают последовательно, а не параллельно.
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