BashのANSIエスケープシーケンスをオフにする方法は?

BashのANSIエスケープシーケンスをオフにする方法は?

Jestを実行しており、出力は次のようになります。テスト用に1行を印刷してから消去し、別の行を印刷します。

ただし、ループを使用してテストを実行している場合(を使用してexpect)、テストリスト全体を見ることはできません。 (セレクターなど)。

私も次のことを試しました。

jest foo.js &> result.txt

しかし、Jokeは端末タイプではないと判断してもはやその行を出力しないようです。

私もオプションを調べましたが、jest効果があるものが見つかりませんでした。

だから私はハッキングが次のようになる可能性があると思いました。端末がこれらのANSIエスケープシーケンス(行の消去など)をサポートしていない場合、出力は1行ずつ行わなければなりません。

それを行う方法はありますか?環境はmacOS Sonomaの端末です。

ベストアンサー1

端末にそのような機能をサポートしていないことを教えてください。

TERM=vanilla jest foo.js

または、スクリプトの先頭に環境変数を設定します(記憶export:すべての子プロセスはこの環境変数を使用する必要があります)。バラよりhttps://invisible-island.net/ncurses/terminfo.ti.htmlさまざまな端末の説明。

良いプログラムは端末をチェックし、端末がサポートしている場合にのみエスケープコードを追加します。残念ながら、(このstackoverflowサイトの多くの答えでわかるように)多くのプログラマーは怠惰で、端末機能を照会せずにとにかくエスケープコードを送信します。

注:ANSIシーケンスを削除するユーティリティもありますが、名前は覚えていません。

おすすめ記事