내 배쉬 매직을 업그레이드하려고합니다. 이 명령을 해독하는 데 도움이 : bash -s 안정


18

좋아, 튜토리얼을 통해 맥에 rvm을 설치하고 있습니다. curl을 통해 rvm을 얻는 bash 명령은

curl -L https://get.rvm.io | bash -s stable

rvm.io 위치의 상반기 curl 명령을 이해하고 결과가 후속 bash 명령으로 파이프되지만 해당 명령이 수행하는 작업이 확실하지 않습니다. 내 질문 :

-s : im은 항상 이것을 참조하는 방법에 대해 혼란스러워합니다. 명령 행 인수는 무엇입니까? 스위치? 다른 것?

-s : 뭐하는거야? 나는 약 30 분 동안 봤지만 그것을 참조하는 방법을 잘 모르겠습니다.

안정 : 이것이 무엇입니까?

tl; dr : bash -s 안정 명령을 해독하는 데 도움이됩니다.

이 게시물에 대답하는 사람들에게, 나는 언젠가 당신처럼 bash 글을 읽고 싶습니다. 그때까지 나 자신과 같은 별이 도움을 주셔서 감사합니다!

답변:


22

-s일은 옵션이라고합니다. 귀하의 경우 bash첫 번째 위치 매개 변수 세트 로 실행됩니다 . 그걸 가지고 놀고 싶다면 :

$ bash -s let us set some positional parameters just for fun
$ # doh? nothing seemed to happen
$ # In fact here we're in a new instance of bash with the parameters set. Look:
$ echo "$3"
set
$ echo "$5"
positional
$ # Get it?
$ printf "%s\n" "$@"
let
us
set
some
positional
parameters
just
for
fun
$ # Amazing!
$ # Let's get out of here!
$ exit
$ # (back to previous bash session)
$

귀하의 경우 curl을 통해 다운로드 한 스크립트가 (으)로 전송되고 bash첫 번째 위치 매개 변수가로 설정됩니다 stable.

당신이 옵션에 갇혀 있다면 당신은 그들이하는 일을 모른다 : man bash그리고 /-s이것을 입력 하면 -s옵션이 설명 된 곳으로 갈 것 입니다. 당신이 알고 싶은 경우 또는 -u옵션의 경우와 sed: man sed다음 입력합니다 /-u.

도움이 되었기를 바랍니다!


"위치 매개 변수"
MikeSchinkel

2
@MikeSchinkel은 : 참조 기준을 . 위치 매개 변수는 숫자로 표시되는 변수입니다 (예 :, $1) $8. 직접 설정할 수 없습니다. 프로그램이나 함수를 호출하면 자동으로 설정됩니다. 예를 들어 함수가 fun() { echo "Parameter 2 is $2"; }있습니다. 그런 다음 시도 fun hello world하고 fun "hello gniourf" "how are you?".
gniourf_gniourf

괜찮 감사. 그러나 여전히 혼란 스러웠다. -s옵션을 사용하지 않는 것과 어떻게 다른 가요?
MikeSchinkel

1
@MikeSchinkel -s옵션 없이 : 파일bash stable 을 찾아서 실행하려고합니다. 와 옵션 : :와, 표준 입력에 오는 것을 실행됩니다 로 설정 . stable-sbash -s stablestable$1
gniourf_gniourf 7
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.