4
从〜/ .zshrc sudo'ing功能时,“找不到命令”
我有一个功能~/.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下运行用户定义的函数?