sudo を使用して bash 関数を実行するにはどうすればいいですか? 質問する

sudo を使用して bash 関数を実行するにはどうすればいいですか? 質問する

関数をエクスポートして bash で実行しようとしましたが、機能しません。

$ export -f my_func
$ sudo bash -c 'my_func' 
bash: my_func: command not found

sudo なしで bash で関数を実行しようとすると (bash -c 'my_func')、動作します。

何か案が?

ベストアンサー1

sudo を実行するたびに、シェルの新しいコピーが分岐して実行され、root として実行されます。そのシェルは、シェルから関数を継承しません (継承できません)。また、以前の実行から関数を継承しません。関数の定義と呼び出しを含むファイルを書き出して、その呼び出しを sudo する必要があります。

おすすめ記事