\curl -L https://get.rvm.io | bash -s stable
Почему команда начинается с \
? Это сайт, на котором я это увидел.
\curl -L https://get.rvm.io | bash -s stable
Почему команда начинается с \
? Это сайт, на котором я это увидел.
alias curl='curl --some --default --options'
Если у вас есть псевдоним для curl
и вы не хотите его использовать, поставив перед ним обратную косую черту, вы отключите псевдоним и запустите исполняемый файл curl напрямую.
Обратите внимание, что это применимо только к интерактивной оболочке. Псевдонимы не действуют в сценариях, поэтому они там не нужны.
shopt -s expand_aliases
перед использованием псевдонима.
- person Alex; 29.03.2013
\curl
не обходит никакие функции оболочки с именем curl
. Для этого вы можете использовать встроенную команду bash command
: command curl ...
- person Keith Thompson; 29.03.2013
\curl ...
— это command curl ...
.
- person glenn jackman; 29.03.2013
dash
(и, возможно, другие оболочки, хотя вы правы для bash
без expand_aliases
) делает расширение псевдонимов в скриптах.
- person Adrian Günter; 12.04.2018
Спецификация оболочки (Bourne/POSIX) говорит, что замена псевдонима в интерактивной оболочке подавляется, когда любой символ командного слова заключен в кавычки. Обратная косая черта — один из способов сделать это, но есть и другие хорошо известные способы цитирования: одинарные и двойные кавычки. Все нижеперечисленное подавляет подстановку псевдонимов:
\curl
cur\l
\c\u\r\l
"c"url
"curl"
"c""u""r""l"
'curl'
'cu'"rl"
Использование \curl
— это самый распространенный и читаемый способ. Поскольку это стандартизированная функция, можно ожидать, что она будет работать во всех оболочках Bourne-heritage.
\curl
немного похоже на команду TeX, не так ли? :-)
\curl
обходит псевдонимы с таким же именем; обратите внимание, что таким образом игнорируются только псевдонимы, а не функции оболочки; command curl ...
обеспечит обход любого.
- person mklement0; 22.04.2014
command() { echo "Not command, lol!"; } ; command -V echo ; \command -V echo ; \command command echo "This is command! (masking despair)"
печатает Not command, lol!
x 3.
- person Adrian Günter; 12.04.2018
command
себя функцией оболочки, вы нарушите механизм. Ваш пример показывает, что \
не обходит функции, как указано. Несаморазрушающий пример: date() { echo 'not date'; }; date; command date
. Если вы беспокоитесь о злонамеренном подделке command
, см. stackoverflow.com/a/35931876/45375 а>
- person mklement0; 12.04.2018
command
не переопределять. По вашей же ссылке: 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)
- person Adrian Günter; 12.04.2018
\curl
работает как шарм. Я использовал /usr/bin/curl
для обхода псевдонима. Спасибо, что сэкономили мне 8 нажатий клавиш!
- person exbctel; 20.09.2019
\CurLTeX
— это версия TeX, в которой операторы TeX оцениваются путем их перемещения по ледяной сети и изменения настроек предстоящих сетевых узлов перед поступлением оператора с помощью специального редактирования на основе метлы, чтобы изменить сетевой путь... что приводит к великолепному рендерингу математические уравнения.
- person xdhmoore; 14.04.2021