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 aliasrespecto a las funciones definidas por el usuario, pero ninguna. Las respuestas a este problema aliasimplican 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 chshpara 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?