\curl -L https://get.rvm.io | bash -s stable
Por que o comando está começando \
?
Este é o site onde eu o vi.
\curl -L https://get.rvm.io | bash -s stable
Por que o comando está começando \
?
Este é o site onde eu o vi.
Respostas:
alias curl='curl --some --default --options'
Se você tem um alias para curl
e não deseja usá-lo, colocar uma barra invertida na frente desativa o alias e executa o binário de ondulação diretamente.
Observe que isso se aplica apenas a um shell interativo. Os aliases não entram em vigor nos scripts, portanto, seria desnecessário.
\curl
não ignora nenhuma função de shell chamada curl
. Para isso, você pode usar o comando interno do bash command
:command curl ...
\curl ...
écommand curl ...
dash
(e possivelmente outros conchas, embora você está correto para bash
sem expand_aliases
) não expandir aliases em scripts.
A especificação do shell (Bourne / POSIX) diz que a substituição de alias em um shell interativo é suprimida quando qualquer caractere da palavra de comando é citado. Uma barra invertida é uma maneira de fazer isso, mas também existem outras maneiras bem conhecidas de citar: aspas simples e duplas. Todos os itens a seguir suprimirão a substituição do alias:
\curl
cur\l
\c\u\r\l
"c"url
"curl"
"c""u""r""l"
'curl'
'cu'"rl"
Usar \curl
é apenas a maneira mais comum e legível. Como esse é um recurso padronizado, você pode esperar que ele funcione em todos os shells da herança Bourne.
\curl
parece um comando TeX, não é? :-)
\curl
ignora um apelido com o mesmo nome; note que apenas aliases são ignorados dessa maneira, não funções de shell ; command curl ...
garantiria ignorar também .
command() { echo "Not command, lol!"; } ; command -V echo ; \command -V echo ; \command command echo "This is command! (masking despair)"
imprime Not command, lol!
x 3. #
command
-se com uma função de shell, você está derrotando o mecanismo. O que seu exemplo mostra é que \
não ignora as funções , conforme declarado. Um exemplo não-auto-destrutivo: date() { echo 'not date'; }; date; command date
. Se você está preocupado com maliciosa adulteração com command
, consulte stackoverflow.com/a/35931876/45375
command
para não ser substituído. A partir do seu próprio link:Thus, with no control over the execution environment, you cannot write shell scripts that are fully immune to tampering, unless you know that your code will be executed by dash, ksh, or bash (with the workaround in place)
shopt -s expand_aliases
antes do uso do alias