アプリケーションを騙して、stdout がパイプではなくターミナルであると思わせる方法 質問する

アプリケーションを騙して、stdout がパイプではなくターミナルであると思わせる方法 質問する

私は「stdin がターミナルかパイプかを検出しますか?「」。

STDOUT でパイプを検出したために出力形式を変更するアプリケーションを実行していますが、リダイレクト時に同じ出力が得られるように、それを対話型端末であると認識させたいと思っています。

スクリプトでラップするexpectか、proc_open()PHP で を使用すれば実現できると考えていましたが、そうではありません。

何かアイデアはありますか?

ベストアンサー1

なるほど!

このscriptコマンドは私たちが望むことを実行します...

script --return --quiet -c "[executable string]" /dev/null

うまくいきました!

Usage:
 script [options] [file]

Make a typescript of a terminal session.

Options:
 -a, --append                  append the output
 -c, --command <command>       run command rather than interactive shell
 -e, --return                  return exit code of the child process
 -f, --flush                   run flush after each write
     --force                   use output file even when it is a link
 -q, --quiet                   be quiet
 -t[<file>], --timing[=<file>] output timing data to stderr or to FILE
 -h, --help                    display this help
 -V, --version                 display version

おすすめ記事