tput samのようなエスケープシーケンスで設定された終了ステータスを問い合わせる方法は?

tput samのようなエスケープシーケンスで設定された終了ステータスを問い合わせる方法は?

QEMUは私の端末を変な状態にしておきました。tput smamついに問題の正確な関数であるvsまでデバッグするのに時間がかかりましたtput rmam

現在の端末状態を確認し、すべての機能の現在値を一度に表示する方法はありますか?

これにより、動作中の端末と「壊れた」端末を簡単に区別して、何が修正されたかを把握できます。

smamしかし対。対。などの特定の機能の現在の状態を把握するのも良いスタートrmamです。

Ubuntu 19.10、Gnome端末でテストされました。

ベストアンサー1

これは機能します(VTEはこの制御の一部を実装します)。

CSI ? PS $ p

DECプライベートモード(DECRQM)を要求します。 VT300以上の場合、DECRPMに対する応答は次のとおりです。

犯罪現場調査?PS;午後$y

ここで、PsはDECSET / DECSETのモード番号、PmはANSI DECRQMのモード値です。

具体的には、PS7である:

       Ps = 7  ⇒  Auto-wrap Mode (DECAWM), VT100.

これは、以下で使用される設定に対応します。端末の説明:

rmam=\E[?7l, smam=\E[?7h,

だから...あなたはします

printf '\033[?7$p'

そして戻ってくるのを楽しみにしています。

\033[?7;1$y

または

\033[?7;2$y

モードが設定されているかリセットされているかによって異なります。

これはまた、スクリプト/プログラムが読んでいると仮定します。端末(不要標準入力)。いくつかあります。テスト/デモスクリプトxtermのリソースに役立つ資料を見つけることができます(ほとんどのリソースはVTEには適用されません)。通常、私はこの機能をテストします。テスト、使用するすべてのシステムに合わせてパッケージ化されています。

おすすめ記事