Eu tenho uma função no meu ~/.zshrc
:
findPort() {
lsof -t -i :$1
}
A invocação usual é findPort 3306
.
Eu quero executá-lo com privilégios elevados. Mas eu recebo "comando não encontrado".
➜ git 🍔 sudo findPort 3306
sudo: findPort: command not found
Presumo que o motivo é que o usuário root é executado como um shell não interativo (portanto, não se refere a um .zshrc) ou se refere a um diferente .zshrc
.
Tenho visto perguntas semelhantes a respeito alias
, mas nenhuma pergunta sobre funções definidas pelo usuário. As respostas para esse problema relacionadas à alias
adição de um alias para ~/.zshrc
:
alias sudo='nocorrect sudo '
Ou talvez:
alias sudo='sudo '
Eu tentei essas duas soluções e o problema ainda existe (sim, relancei o shell).
Também tentei executar sudo chsh
para garantir que meu shell raiz seja executado sob zsh
. Nenhuma dessas soluções remove o problema "comando não encontrado".
Existe uma maneira de executar minhas funções definidas pelo usuário no sudo?