próbuję ulepszyć moją magię bashu. pomóż rozszyfrować to polecenie: bash -s stable


18

ok, więc pracuję przez samouczek, aby zainstalować RVM na moim komputerze Mac. polecenie bash, aby uzyskać RVM przez curl jest

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

Rozumiem polecenie curl z pierwszej połowy w lokalizacji rvm.io i że wynik jest przekazywany do kolejnej komendy bash, ale nie jestem pewien, co robi ta komenda. Moje pytania:

-s: zawsze jestem zdezorientowany, jak się do nich odnosić. jaki to rodzaj: argument wiersza poleceń? przełącznik? coś innego?

-s: co on robi? korzystałem z Google przez około pół godziny, ale nie jestem pewien, jak się do tego odwołać, utrudnia to.

stabilny: co to jest?

tl; dr: pomóż mi rozszyfrować polecenie bash -s stable

dla tych, którzy odpowiadają na ten post, pragnę, aby pewnego dnia być tak piśmiennym jak ty. do tego czasu przeciwnicy tacy jak ja dziękuję za pomoc!

Odpowiedzi:


22

-sRzeczą nazywany jest rozwiązaniem. W twoim przypadku oznacza to, że bashzostanie wykonane z pierwszym zestawem parametrów pozycyjnych . Jeśli chcesz się tym bawić:

$ 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)
$

W twoim przypadku skrypt pobrany przez curl jest wysyłany do bash(więc zostanie wykonany) i będzie miał ustawiony pierwszy parametr pozycyjny na stable.

Jeśli kiedykolwiek utkniesz w opcjach, nie wiesz, co oni robią: man basha następnie wpisz /-sto, mniej więcej doprowadzi Cię do miejsca, w którym -sopisana jest opcja. Lub jeśli chcesz wiedzieć, co -urobi opcja dla sed: man seda następnie wpisz /-u.

Mam nadzieję że to pomoże!


Co to jest „parametr pozycyjny”?
MikeSchinkel

2
@MikeSchinkel: patrz odniesienie . Parametry pozycyjne to zmienne oznaczone cyframi, np . $1, $8. Nie możesz ustawić ich bezpośrednio. Są one ustawiane automatycznie po wywołaniu programu lub funkcji. Na przykład za pomocą funkcji: fun() { echo "Parameter 2 is $2"; }. Następnie spróbuj fun hello worldi fun "hello gniourf" "how are you?".
gniourf_gniourf

Ok, dzięki. Ale wciąż zdezorientowany; czym to się różni od nieużywania -sopcji?
MikeSchinkel

1
@MikeSchinkel Bez -sopcji: bash stablewyszuka plik stable i spróbuje go wykonać. Z -sopcją:: bash -s stablewykona to, co przyjdzie na standardowe wejście, stableustawiając jako $1.
gniourf_gniourf
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.