特定のアプリケーションの場合、設定できるフラグまたは構成がある場合がありますgit diff --no-pager
。
しかし、デフォルトの動作などを変更するつもりはありません。(スクリプト化された PTY イベントの特定のインスタンスに対して) 出力が非対話的に出力されるように強制しようとしています。
私は2つのアプローチを考えることができます:
command | cat
... また ...cat <(command)
これらのコマンドは PTY で実行されます (具体的にはtmux
、のように script.sh 経由で送信されtmux new-window script.sh
ます)。これは実際には、スクリプトを実行するのとは異なり (スクリプトの記述方法と同様)、実際に入力するように実行されます。の。
最初のcat
アプローチは、実際にはプログラムをフォークしてパイプを作成するため、おそらく遅くなると思います。私が知る限り、2番目のアプローチでも同じことができます。猫の使用を回避するにはどうすればよいですか? これは実際に真に有用な使用法cat
ですか??
私はさらに2つの方法を考えました:
mkfifo fifo
command > fifo &
cat fifo
わかりました、それは愚かに見えて、 のロングハンドです|
。
command > file &
tail -f file
ファイルへの書き込みがいつ完了したかを知る方法は?
rm -f file
touch file
tail -f file &
PID=$!
command >> file
kill $PID
かなり遠回り。
他に可能な方法はありますか?どれが一番いいですか?