![이 txt 스크립트 파일에 대해 "cat" 명령은 어떻게 작동합니까?](https://linux55.com/image/120033/%EC%9D%B4%20txt%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%20%ED%8C%8C%EC%9D%BC%EC%97%90%20%EB%8C%80%ED%95%B4%20%22cat%22%20%EB%AA%85%EB%A0%B9%EC%9D%80%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%9E%91%EB%8F%99%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
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.txt
file.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