\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 безпосередньо.
Зауважте, що це стосується лише інтерактивної оболонки. Псевдоніми не діють в сценаріях, тому це було б непотрібно.
\curlне обходить жодну функцію оболонки з назвою curl. Для цього ви можете скористатися вбудованою командою bash command:command curl ...
\curl ...єcommand curl ...
dash(і , можливо , інші оболонки, хоча ви маєте рацію , для bashбез expand_aliases) робить розширення псевдонімів в скриптах.
Специфікація оболонки (Bourne / POSIX) говорить, що заміна псевдоніму в інтерактивній оболонці придушується, коли будь-який символ командного слова цитується. Зворотний нахил - це один із способів цього зробити, але є й інші відомі способи цитування: одинарні та подвійні лапки. Все наведене нижче пригнічує заміну псевдоніму:
\curl
cur\l
\c\u\r\l
"c"url
"curl"
"c""u""r""l"
'curl'
'cu'"rl"
Використання \curl- це лише найпоширеніший і читабельний спосіб. Оскільки це стандартизована функція, ви можете очікувати, що вона працює у всіх оболонках спадщини Борна.
\curlвиглядає трохи як команда TeX, чи не так? :-)
\curlобходить псевдонім з однойменною назвою; зауважте, що таким чином обходять лише псевдоніми , а не функції оболонки ; command curl ...забезпечив би обхід будь-якого .
command() { echo "Not command, lol!"; } ; command -V echo ; \command -V echo ; \command command echo "This is command! (masking despair)"відбитки Not command, lol!x 3.
command себе функцією оболонки, ви переможете механізм. Що показує ваш приклад, це те, \ що не обходить функції , як зазначено. Приклад, що не перемагає себе date() { echo 'not date'; }; date; command date. Якщо ви турбуєтеся про шкідливих фальсифікації з command, см stackoverflow.com/a/35931876/45375
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)
shopt -s expand_aliasesперед використанням псевдонім