我有一个功能~/.zshrc
:
findPort() {
lsof -t -i :$1
}
通常的调用是findPort 3306
。
我想以提升的特权运行它。但是我得到“找不到命令”。
➜ git 🍔 sudo findPort 3306
sudo: findPort: command not found
我猜想原因是root用户或者以非交互式shell运行(因此不引用.zshrc),或者引用了别的 .zshrc
。
我曾经看到过类似的问题alias
,但是关于用户定义的函数却没有问题。有关此问题的答案alias
涉及为添加别名~/.zshrc
:
alias sudo='nocorrect sudo '
也许:
alias sudo='sudo '
我已经尝试了这两种解决方案,但问题仍然存在(是的,我已经重新启动了外壳)。
我还尝试运行sudo chsh
以确保我的根shell在.NET下运行zsh
。这些解决方案都不能消除“找不到命令”问题。
有没有办法在sudo下运行用户定义的函数?