私には私の機能があります~/.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でユーザー定義関数を実行する方法はありますか?