私はこのようなものが欲しい:
maybeexec command arg1 arg2 &> /logs/log
Maybeexec は次のような bash 関数です。
maybeexec() {
if ! ps ax | grep -v grep | grep "$*" > /dev/null
then
"$@"
fi
}
したがって、基本的にcommand arg1 arg2
は既に実行されているかどうかを確認し、実行されている場合は実行しません。
ただし、私の問題は、command arg1 arg2
が既に実行されてmaybeexec
いて同時に実行されていなくて/logs/log
も、リダイレクト用に開かれており、既存の を上書きしてしまう/logs/log
ことです。これは望ましくありません。
これを解決する最もエレガントな方法は何ですか? 可能であれば、今と同じように呼び出しを続けたいと思いmaybeexec
ます。出力をすべて別のファイルにリダイレクトする多くのコマンドを実行するために使用しているためです。
ありがとう!