関数でsudoをどのように使用しますか?

関数でsudoをどのように使用しますか?

tee同様に動作しますが、日付スタンプを前に追加する関数を作成しました。ルート書き込みのみ可能なファイル(私の場合はログファイル/var/log)に出力したい以外はすべてうまくいきます。機能しない部分だけを含めるように、次のコードスニペットを簡素化しました。

#!/bin/bash
#script ~/test_logger.sh
logfile=/var/log/test.log
logger()
{
    while read data
    do
        echo $data >> $logfile
    done
    return 0
}
sudo ls ~ | logger

このようにスクリプト全体を実行すると正常に動作しますが、自動実行可能ファイルでロガー機能を使用したいsudo ~/test_logger.shので、常にそうすることはできません。 whileループのエコーの前に~/.bash_logout入れようとしましたが、うまくいきませんでした。sudoどんなアイデアがありますか?

ベストアンサー1

sudo通常、スクリプトを置くのは悪い習慣です。より良いオプションは、必要に応じてスクリプトを使用したい場所や他の場所sudoからスクリプトを呼び出すことです。あるいは、より良い方法は、世界を書き込み可能にすることです。~/.bash_logout/var/log/test.log

おすすめ記事