別のコマンドの出力を適切な場所にリダイレクトするbashスクリプトを作成しています。基本的には、スクリプトがシェル/コマンドラインから呼び出されたときに、出力をSTDOUTに送る必要があります。しかし、bashスクリプトが他のアプリケーション(例えば、別のbashスクリプト、アプリケーション、私の場合は素晴らしいウィンドウマネージャーの素晴らしいプロンプトから)から実行されたとき、出力を別の場所にリダイレクトしたいのです。bashスクリプトがシェルまたは別のスクリプト/アプリケーションから呼び出されたかどうか確認してください。
スクリプトがどのように呼び出されたかを見るための方法はありますか?
それを見るもう1つの方法は、出力そのものをパイプするラッパースクリプトを使用するのはなぜですか?だから、素晴らしいウィンドウマネージャはscript-wrapper.shを呼び出し、これには "./script.sh >> awesome.log"という文字列が含まれています。 – laher
シェルスクリプトのユーザーとして、私はスクリプトがあまりにも巧妙ではない。私はファイル内の出力をしたい場合、私は完全にそれを自分自身のファイルに置くことができます。ファイルに出力を送るためにラッパーやフラグをスクリプトに提供すると( '-o filename'など)、理想的です - 簡単ですが明示的です。 –
良い点ですが、これを簡単にしたいと思います。問題のコマンドはTaskwarriorです。私は 'task add blah blah'と入力して、どこに入力しても心配しなくてもいいようにしたいだけです。毎回多くのリダイレクトやオプションを入力する必要がある場合は、十分ではないため使用しません。 –