파일에서 입력을 받는 diff 인수를 사용하여 스크립트 paralley를 어떻게 실행할 수 있나요?

파일에서 입력을 받는 diff 인수를 사용하여 스크립트 paralley를 어떻게 실행할 수 있나요?

abc.txtLinux 시스템에 다음과 같은 파일이 있습니다 .

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

관련 정보