buscando atualizar minha magia bash. help decifrar este comando: bash -s stable

18

ok, então estou trabalhando em um tutorial para instalar o rvm no meu mac. o comando bash para obter o rvm via curl é

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

Eu entendo o comando curl da primeira metade na localização rvm.io, e que o resultado é canalizado para o comando bash subsequente, mas não tenho certeza do que esse comando está fazendo. Minhas perguntas:

-s: estou sempre confuso sobre como me referir a eles. Que tipo de coisa é esta: um argumento de linha de comando? uma troca? algo mais?

-s: o que está fazendo? Eu pesquisei por cerca de meia hora, mas não tenho certeza de como me referir a ela, o que torna isso difícil.

estável: o que é isso?

tl; dr: me ajuda a decifrar o comando bash -s stable

para aqueles que estão respondendo este post, aspiro a um dia ser tão educado quanto você. até então, opstards como eu agradecem pela ajuda!

    
por tim 15.12.2012 / 22:38

1 resposta

22

A coisa -s é chamada de opção. No seu caso, isso significa que bash será executado com o primeiro conjunto posicional parâmetro . Se você quiser brincar com isso:

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

No seu caso, o script baixado via curl é enviado para bash (assim será executado) e terá o primeiro parâmetro posicional definido como stable .

Se alguma vez você estiver preso a opções, você não sabe o que elas fazem: man bash e, em seguida, digite /-s , isso mais ou menos levará você até onde a opção -s é descrita. Ou se você quiser saber o que a opção -u faz para sed : man sed e, em seguida, digite /-u .

Espero que isso ajude!

    
por 15.12.2012 / 22:56

Tags