J'ai une fonction dans mon ~/.zshrc
:
findPort() {
lsof -t -i :$1
}
L'invocation habituelle est findPort 3306
.
Je veux l'exécuter avec des privilèges élevés. Mais j'obtiens "commande introuvable".
➜ git 🍔 sudo findPort 3306
sudo: findPort: command not found
Je suppose que la raison en est que l'utilisateur root s'exécute en tant que shell non interactif (ne fait donc pas référence à un .zshrc) ou fait référence à un autre .zshrc
.
J'ai vu des questions similaires concernant alias
, mais aucune question concernant les fonctions définies par l'utilisateur. Les réponses à ce problème concernant l' alias
ajout d'un alias à ~/.zshrc
:
alias sudo='nocorrect sudo '
Ou peut-être:
alias sudo='sudo '
J'ai essayé ces deux solutions, et le problème existe toujours (oui, j'ai relancé le shell).
J'ai également essayé de courir sudo chsh
pour m'assurer que mon shell racine fonctionne sous zsh
. Aucune de ces solutions ne supprime le problème «commande introuvable».
Existe-t-il un moyen d'exécuter mes fonctions définies par l'utilisateur sous sudo?