bash <<구문의 의미는 무엇입니까?


11

다음과 같이 설치된 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

동일하지 않습니까?

감사.


더 좋은 질문은 다음과 같습니다. 왜 이것이 같은가bash <(curl -s ...)
Bruno Bronosky

명령 <(...)은 명령이 해당 위치에서 파일 이름을 허용 할 때 작동합니다. 다른 <를 앞에두면 명령은 stdin의 입력을 받아 들여야합니다. 파일 이름이 제공되지 않으면 일부 명령이 작동하고 stdin을 사용합니다. 허용되는 답변은이 차이를 암시합니다.
Lee Meador

답변:



6

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

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

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

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


3
하지만 왜 컬을 사용할 수 없습니다 ... | bash -s가 안정적입니까?
Lilás
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.