У меня есть функция в моем ~/.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?