web-dev-qa-db-ja.com

'tput'コマンドで端末のタイトルを設定するにはどうすればよいですか?

この回答 を通じて、プロンプトで端末の色を何年も素朴な方法で設定していることを発見しました。

.bashrcを変更して、「tput」コマンドを使用してプロンプトのさまざまな要素を色付けしました。私が持っている残りのエスケープコードはこれです:

TITLEBAR="\[\033]2; PROD - \u@\h:\w \007\]"

ターミナルウィンドウのタイトルバーを設定するために使用できるtput/terminfo属性があるかどうかを誰かが知っているので、そのエスケープを排除できますか?

8
Murali Suriar

実際の機能はtsl(ステータスラインへ)とfsl(ステータスラインから)ですが、もちろんすべての端末がそれを持っているわけではありません。特にLinuxでは、ターミナルをxterm + slなどに設定する必要があります。

あなたはこれをテストすることができます

export TERM=xterm+sl
echo `tput tsl` Hello world `tput fsl`; sleep 10

私は気にせず、それらのエスケープを.bashrcに保持しません

8
codehead

Xterm terminfoファイルを調べたところ、このコマンドと同じコードが見つからなかったので、ないのではないかと思います。

興味があれば、terminfoのmanページにtermcapとterminfoが理解できるすべてのコマンドがリストされています。以下を使用して、terminfoデータベースファイルを逆コンパイルしました。

#infocmp -L xterm 
2
David Pashley

コメントできないので、追加の回答:

Tsl/fslを使用する場合は、必ず最初に端末にhsを要求してください。 tsl/fsl(およびその他の* sl)がサポートされている場合、hsはtrueである必要があります。

tput hs && { echo ....; }
2
TheBonsai

Xtermの「vt100モード」の特別な機能の詳細については、オペレーティングシステムの制御セクションの Xterm制御シーケンス ドキュメントを参照してください。

1
Randall