
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
, 모든 스크립트를 병렬로 실행해야 하며, 스크립트가 실패한 경우 마지막 필드를 보류 상태에서 FAILED/SUCCESS로 업데이트해야 합니다.
파일에서 세 번째 필드를 'var1' 변수로 추출하고 스크립트를 실행하고 PENDING TO SUCCESS/FAILED에서 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