bash <<구문의 의미는 무엇입니까? bash 인터프리터에게 공급함)가 무엇인지 이해합니다

다음과 같이 설치된 RVM (Ruby Version Manager) :

bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)

나는 첫 번째 <의미 (bash 스크립트를 bash 인터프리터에게 공급함)가 무엇인지 이해합니다 <(...). 따라서 괄호로 무엇을하고 여기보다 작습니다. 어떤 경우에 동일한 구문을 사용할 수 있습니까?

나는 인터넷에서 발굴하려고 시도했지만이 SO 질문 /programming/2188199/bash-double-or-single-bracket-parentheses-curly-braces 와 우분투 포럼 에서이 질문을 찾았습니다 : http : // ubuntuforums .org / showthread.php? p = 7803008 그러나 왜 우리가 왜 이러한 괄호를 사용하는지 그리고 왜 우리가 입력 리디렉션을 두 번 사용하는지 모르겠습니다.

bash < curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer

동일하지 않습니까?

감사.



답변

그것은의 프로세스 대체 . 명령의 출력을 일반 파일처럼 읽을 수있는 FIFO로 공급합니다.


답변

“괄호 안에서 명령을 실행하고 해당 명령의 표준 출력을 나타내는 파일 이름을 여기에 반환합니다”를 의미합니다.

따라서 두 가지 명령으로 변환됩니다.

curl ... > something
bash -s stable < something

“뭔가”가 마법 인 곳. (일반적으로 /dev/fd/...또는 파이프)