이전에 어딘가에서 이에 대한 설명을 본 적이 있지만 지금은 참조를 찾을 수 없습니다. Ubuntu docker 시작 가이드의 사용 예:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
나는 그것이 무엇을 하기로 되어 있었는지 막연하게 기억한다. IIRC 맞습니다. 파이프를 통해 전달된 표준 입력을 어떻게든 사용해야 합니다. 그런데 이 경우 왜 이것이 필요한가?
내가 찾은 가장 가까운 기사는 다음 기사입니다.http://www.catonmat.net/blog/bash-one-liners-explained-part-Three/. 어쩌면 비표준 스트림을 열었다가 닫는 예에서처럼 스트림을 닫는 것과 관련이 있는 것일까요?
exec 3<file
exec 3>&-
답변1
이는 Bash나 다른 셸의 기능은 아니지만 많은 응용 프로그램 에서 stdin
. 다른 파일과 함께 처리되기를 바랍니다. 예 를 들어 파일 과 .stdin
stdin
cat foo -
cat
foo
stdin
의 경우 apt-key
,매뉴얼 페이지add
하위 명령 에 파일 이름을 제공하는 것이 필수이며 -
사용되도록 지정해야 함을 의미합니다 stdin
. 원하는 작업을 수행하고 원하는 입력을 읽는 것은 응용 프로그램에 달려 있다는 점을 명심하십시오 stdin
. 기본 입력 소스로 사용하는 것은 습관의 문제일 뿐입니다.
-
일부 프로그램은 의미를 지원하지 않으며 stdin
이를 리터럴 파일 이름으로 취급합니다. 이러한 경우에는 이와 같은 해결 방법이 /dev/stdin
필요합니다.
에 관해서는 >&-
명시적으로 연결되어 있는 것을 볼 수 없습니다. 이는 단순한 문자를 실수로 사용한 것일 수 있습니다. 대시는 >&-
"없음"(빈 필드)을 나타내는 파업과의 연결에서 나올 수 있습니다. 왜 이런 뜻인지 stdin
모르겠습니다. 하지만 이것보다 더 좋아 보이거나 비슷 %
하고, 다른 많은 문자들은 다른 의미를 가지고 있습니다.
답변2
이 -
매개변수는 일반적으로(일부 명령의 경우) "stdin 입력"을 의미합니다.
따라서 이 명령 파이프라인은 다음과 같습니다( 로 구분된 두 명령 |
).
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
-
표준 입력에서 읽도록 apt-key에 지시합니다 .
이 입력(stdin)은 파이프의 입력입니다. 컬 출력.