명령이 파이프에서 작동하는지 어떻게 알 수 있나요?

명령이 파이프에서 작동하는지 어떻게 알 수 있나요?

나는 다음 명령을 보았습니다.

docker inspect --format '{{.State.Running}}' $(docker ps -lq)

이:

docker ps -l -q|while read cid b; do docker inspect -f '{{ .State.Running }}' $cid; done;

내 질문은 왜 다음과 같이 쓸 수 없는가입니다.

docker ps -l -q|docker inspect -f '{{.State.Running}}'

docker inspect파이프와 작동하지 않기 때문이라면 어떤 명령이 작동하고 어떤 명령이 작동하지 않는지 어떻게 알 수 있나요?

답변1

파이프는 첫 번째 프로그램의 출력을 가져와 다음 프로그램에 전달합니다. 어떤 의미에서는 사용자가 터미널의 두 번째 프로그램에 입력을 입력하는 것처럼 가장합니다. 따라서 프로그램을 실행하고 프로그램이 실행되는 동안 작업할 파일 목록을 입력할 수 있다면(예를 들어) 파이프를 사용하여 동일한 작업을 수행할 수 있습니다.

파이프로 무엇을 할 수 있는지에 대한 힌트는 프로그램 매뉴얼에서 볼 수 있습니다. 예를 들어, 매개변수를 man wget언급하면 ​​표준 입력(STDIN이라고도 함)에서 파일을 읽습니다. 그래서 당신은 더 효율적으로 할 수 있습니다 .-i-i -cat list-of-links.txt | wget -i -wget -i - < list-of-links.txt

관련 정보