Ho una funzione nel mio ~/.zshrc:
findPort() {
lsof -t -i :$1
}
La solita invocazione è findPort 3306.
Voglio eseguirlo con privilegi elevati. Ma ottengo "comando non trovato".
➜ git 🍔 sudo findPort 3306
sudo: findPort: command not found
Presumo che il motivo sia che l'utente root o viene eseguito come shell non interattiva (quindi non si riferisce a un .zshrc) o si riferisce a un altro .zshrc .
Ho visto domande simili in merito alias, ma nessuna domanda riguardante le funzioni definite dall'utente. Le risposte a questo problema riguardano aliasl'aggiunta di un alias a ~/.zshrc:
alias sudo='nocorrect sudo '
O forse:
alias sudo='sudo '
Ho provato entrambe queste soluzioni e il problema persiste (sì, ho riavviato la shell).
Ho anche provato a correre sudo chshper assicurarmi che la mia shell root funzioni sotto zsh. Nessuna di queste soluzioni rimuove il problema "comando non trovato".
C'è un modo per eseguire le mie funzioni definite dall'utente su sudo?