私には私の機能があります~/.zshrc:
findPort() {
lsof -t -i :$1
}
通常の呼び出しはfindPort 3306です。
管理者特権で実行したい。しかし、「コマンドが見つかりません」と表示されます。
➜ git 🍔 sudo findPort 3306
sudo: findPort: command not found
その理由は、rootユーザーが非対話型シェルとして実行されている(したがって、.zshrcを参照していない)か、別のを 参照しているためだと思い.zshrcます。
に関する同様の質問を見ましたaliasが、ユーザー定義関数に関する質問はありません。に関するこの問題の回答にaliasは、にエイリアスを追加することが含まれ~/.zshrcます。
alias sudo='nocorrect sudo '
多分:
alias sudo='sudo '
私はこれらの両方の解決策を試しましたが、問題はまだ存在しています(はい、シェルを再起動しました)。
またsudo chsh、ルートシェルがで実行されるように実行してみましたzsh。これらの解決策はいずれも、「コマンドが見つかりません」という問題を取り除きません。
sudoでユーザー定義関数を実行する方法はありますか?