как запустить скрипт paralley с аргументами diff, принимая входные данные из файла

как запустить скрипт paralley с аргументами diff, принимая входные данные из файла

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

Связанный контент