私のファイルをカスタマイズして現在のTTYセッションを現在のターミナルウィンドウのタイトルバーに表示する方法を理解しようとしていますが、うまくいく.bashrc
問題があるようです。
私はこれをしようとします。
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h \w\a | $(tty | cut -d/ -f3,4)\]$PS1"
しかし、これを行うと、期待した結果は出ません。代わりに、それはまるで。
| pts/0user@hostname ~$
このようにタイトルバーの代わりに開いた端末画面で。
user@host ~ | pty/0
私の.bashrc
ファイルには次のようになります。
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h \w\a | $(tty | cut -d/ -f3,4)\]$PS1"
;;
*)
;;
esac
- -
これで解決しました。
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h \w | $(tty | cut -d/ -f3,4)\a\]$PS1"
投稿でこの点を指摘した@Gillesに感謝します。おかげで、やるべきことがより明確になりました。
答え1
ウィンドウのタイトルを設定するには:エスケープシーケンス \e]2;TITLE\a
ここで\e
、\a
およびはそれぞれエスケープ文字とベル文字です。 bashプロンプト内でこれを行うため、\[…\]
ターミナル内で出力が生成されないことをbashに通知するには、エスケープシーケンスがその中になければなりません。
あなたはそれを使用することができますパラメータ拡張プレフィックスを切り捨てて変更されないので、一度だけ呼び出してください/dev/
。tty
TTY=$(tty)
PS1="\\[\\e[2;${TTY#/dev/}\\a\\]$PS1"