file 에 명령 목록이 있다고 가정해 보겠습니다 cmd_file
.
다음을 통해 이러한 명령을 실행합니다.
cat cmd_file | parallel -k -I {} "{}"
명령 중 하나가 실패했습니다. 모든 명령은 정확히 동일한 CLI 도구와 다른 입력을 사용합니다.
이제 명령 목록을 명령 생성기 루프(더 복잡함)로 대체하여 잘못된 명령을 찾으려면 한 번에 하나의 명령을 실행해야 합니다.
for ...; do
# assemble the vars for the command
echo "<command>"
<command>
done
예를 들어, 실패한 명령을 병렬로 표시하거나 stderr에서 실행 순서를 표시하는 메커니즘이 있습니까?
답변1
당신은 안내할 수 있습니다parallel
실행된 각 명령을 표준 출력 또는 표준 오류로 인쇄합니다. man
페이지 에서 :
-v Print the job to be run on stdout (standard output).
Can be reversed with --silent. See also -t.
-t Print the job to be run on stderr (standard error).
어쩌면:
for ...; do
# assemble the vars for the command
echo "<command>"
done |
parallel -v -k
또는 준비가 되었다면 cmd_file
:
parallel -v -k < cmd_file
또는 이와 유사한 것이 귀하의 필요에 적합할 것입니다.
답변2
명령이 종료 값을 설정하면 --joblog
그것은 당신의 친구입니다.
답변3
예를 들어, 실패한 명령을 병렬로 표시하거나 stderr에서 실행 순서를 표시하는 메커니즘이 있습니까?
GNU Parallel 20220722에는 다음이 포함됩니다 --colour-failed
.
parallel --tag --colour-failed "echo foo {}; {}" ::: true true false false true