![명령이 파이프에서 작동하는지 어떻게 알 수 있나요?](https://linux55.com/image/74260/%EB%AA%85%EB%A0%B9%EC%9D%B4%20%ED%8C%8C%EC%9D%B4%ED%94%84%EC%97%90%EC%84%9C%20%EC%9E%91%EB%8F%99%ED%95%98%EB%8A%94%EC%A7%80%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%95%8C%20%EC%88%98%20%EC%9E%88%EB%82%98%EC%9A%94%3F.png)
나는 다음 명령을 보았습니다.
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