이 txt 스크립트 파일에 대해 "cat" 명령은 어떻게 작동합니까?

이 txt 스크립트 파일에 대해 "cat" 명령은 어떻게 작동합니까?

txt 파일이 있고 file.txt각 줄이 Python 스크립트라고 가정합니다. 예를 들어 python a1.py python a2.py python a3.py

다음 명령은 정확히 무엇을 하고 있나요?

cat file.txt | xargs -n 1 -P $NUM_CPUS bash -c

답변1

설명하다:

cat file.txt | xargs -n 1 -P $NUM_CPUS bash -c
  • cat file.txtfile.txt- 파이프라인의 다음 프로그램으로 전달된 파일 내용을 연결합니다.

  • xargs -n 1- STDIN에서 한 번에 1개의 인수를 허용합니다(이전 명령 출력).

  • -P $NUM_CPUS$NUM_CPUS- 한 번에 여러 프로세스 실행(프로세스당 하나의 입력 라인 호출)

  • bash -c- 현재 매개변수로 실행되는 명령

답변2

정수가 포함되어 있다고 가정하면 $NUM_CPUS이 명령은 최대 여러 개의 병렬 비대화형 bash쉘을 실행합니다(이것이 바로 그 기능 -P입니다). 각 쉘은 입력 파일에서 한 줄을 실행합니다(때문에 -n 1).

cat이 명령은 필요하지 않습니다.

xargs -n 1 -P "$NUM_CPUS" bash -c <file.txt

관련 정보