ターミナルにScreenのウィンドウ番号を表示する方法
環境が変わったとき用のメモ。
基本的なBash前提で。
ターミナルの表示は以下の様な感じになっているはず。
fooはユーザ名、barはマシン名。現在位置が/にいる。
foo@bar:/$
これをこんな感じにする。
foo@bar:/:1$
まずこのターミナルのプロンプト表示はBashが管理していて、変数PS1に設定されている。
$ echo $PS1
として確認する。
出力された文字列がプロンプトのフォーマット。
自分の環境(Ubuntu)での表示。
ディストリによっても違うので注意すること。(Debianでも同じだと思う)
意味はman bash(1)を参照。
${debian_chroot:+($debian_chroot)}\u@\h:\w\$
次にScreenのウィンドウ番号はWINDOWという変数に入っている。
また、Screenを使用している状態ではTERM変数が変わる。
$ echo $WINDOW 1 $ echo $TERM screen
ちなみにFedoraではTERMの値が"screen.linux"になっていた(はず)のでこれもディストリによって変わるみたい。
これで必要な情報が分かったので~/.bashrcに追加を行う。
if [ "$TERM" = "screen" ]; then PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w:$WINDOW\$ ' fi
これでScreen使用時のみウィンドウ番号が表示されるようになる。