Tengo una función en mi ~/.zshrc
:
findPort() {
lsof -t -i :$1
}
La invocación habitual es findPort 3306
.
Quiero ejecutarlo con privilegios elevados. Pero me sale "comando no encontrado".
➜ git 🍔 sudo findPort 3306
sudo: findPort: command not found
Supongo que la razón es que el usuario raíz se ejecuta como un shell no interactivo (por lo tanto, no se refiere a un .zshrc) o se refiere a otro .zshrc
.
He visto preguntas similares con alias
respecto a las funciones definidas por el usuario, pero ninguna. Las respuestas a este problema alias
implican agregar un alias a ~/.zshrc
:
alias sudo='nocorrect sudo '
O quizás:
alias sudo='sudo '
He intentado ambas soluciones y el problema persiste (sí, he relanzado el shell).
También he intentado ejecutar sudo chsh
para asegurarme de que mi shell raíz se ejecuta por debajo zsh
. Ninguna de estas soluciones elimina el problema "comando no encontrado".
¿Hay alguna manera de ejecutar mis funciones definidas por el usuario en sudo?