У меня есть функция в моем ~/.zshrc
:
findPort() {
lsof -t -i :$1
}
Обычный вызов есть findPort 3306
.
Я хочу запустить его с повышенными привилегиями. Но я получаю "команда не найдена".
➜ git 🍔 sudo findPort 3306
sudo: findPort: command not found
Я предполагаю, что причина в том, что пользователь root либо работает как неинтерактивная оболочка (таким образом, не ссылается на .zshrc), либо ссылается на другую .zshrc
.
Я видел похожие вопросы относительно alias
, но не вопрос относительно пользовательских функций. Ответы на эту проблему касаются alias
добавления псевдонима ~/.zshrc
:
alias sudo='nocorrect sudo '
Или возможно:
alias sudo='sudo '
Я испробовал оба эти решения, и проблема все еще существует (да, я перезапустил оболочку).
Я также попытался запустить, sudo chsh
чтобы убедиться, что моя корневая оболочка работает zsh
. Ни одно из этих решений не устраняет проблему «команда не найдена».
Есть ли способ запустить мои пользовательские функции под sudo?