\curl -L https://get.rvm.io | bash -s stable
Pourquoi la commande commence- \
t-elle?
Ceci est le site où je l'ai vu.
\curl -L https://get.rvm.io | bash -s stable
Pourquoi la commande commence- \
t-elle?
Ceci est le site où je l'ai vu.
Réponses:
alias curl='curl --some --default --options'
Si vous avez un alias pour curl
et que vous ne voulez pas l'utiliser, mettre une barre oblique inverse devant désactive l'alias et exécute directement le binaire curl.
Notez que cela ne s'applique qu'à un shell interactif. Les alias ne prennent pas effet dans les scripts, ce serait donc inutile là-bas.
\curl
cela ne contourne aucune fonction de shell nommée curl
. Pour cela, vous pouvez utiliser la commande intégrée bash command
:command curl ...
\curl ...
estcommand curl ...
dash
(et éventuellement d' autres coquilles, bien que vous avez raison pour bash
sans expand_aliases
) ne développer des alias dans les scripts.
La spécification du shell (Bourne / POSIX) indique que la substitution d'alias dans un shell interactif est supprimée lorsqu'un caractère du mot de commande est cité. Une barre oblique inversée est une façon de le faire, mais il existe également d'autres façons bien connues de citer: les guillemets simples et doubles. Tous les éléments suivants supprimeront la substitution d'alias:
\curl
cur\l
\c\u\r\l
"c"url
"curl"
"c""u""r""l"
'curl'
'cu'"rl"
L'utilisation \curl
est simplement la manière la plus courante et la plus lisible. Comme il s'agit d'une fonctionnalité standardisée, vous pouvez vous attendre à ce qu'elle fonctionne dans tous les shells Bourne-Heritage.
\curl
ressemble un peu à une commande TeX, n'est-ce pas? :-)
\curl
contourne les alias du même nom; notez que seuls les alias sont contournés de cette façon, pas les fonctions shell ; command curl ...
assurerait le contournement non plus .
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
lui - même avec une fonction shell, vous battant le mécanisme. Ce que montre votre exemple, c'est qu'il \
ne contourne pas les fonctions , comme indiqué. Un exemple non autodestructrice: date() { echo 'not date'; }; date; command date
. Si vous êtes inquiet au sujet malveillant falsification avec command
, voir stackoverflow.com/a/35931876/45375
command
à ne pas ignorer. De votre propre lien: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
avant l'utilisation de l'alias