Рассматривая способы передачи псевдонимов текущего пользователя команде sudo
, я нашел следующее в ArchWiki а>:
Передача псевдонимов
Если вы используете много псевдонимов, вы могли заметить, что они не переносятся на учетную запись root при использовании sudo. Однако есть простой способ заставить их работать. Просто добавьте следующее к вашему
~/.bashrc
или/etc/bash.bashrc
:
alias sudo='sudo '
Я не понимаю, почему это работает. Если оболочке все равно, сколько пробелов между двумя командами, как это может иметь какой-либо эффект?
При ручном добавлении пробела я не вижу разницы:
$ alias e=echo
$ sudo e foo
sudo: e: command not found
$ sudo e foo # Manual space addition
sudo: e: command not found # Fail
$ alias sudo="sudo " # Now with alias
$ sudo e foo
foo # Succeeds, but why?
Явное псевдоним sudo для sudo + пробел каким-то образом позволяет передавать псевдонимы. Это работает на zsh
, bash
и sh
, поэтому это поведение не зависит от оболочки.