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 alias
l'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 chsh
per 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?