Bashのプロンプトを変えずにscreenのウィンドウタイトルだけ変える

公開日: : Linux, Record , ,

Pocket

先にコード例。.bashrcに書きます。

この例ではウィンドウ名が「ユーザー名:カレンドディレクトリ名($HOMEなら~表記)」となります。
kと\033の間の部分を好きなように変えてください。
if文で端末がscreenの時のみPROMPT_COMMANDが設定されます。

以下説明。

screenのウィンドウ名はデフォルトだと$PS1のプロンプトが表示されるので、幅を取りすぎな時がありますよね。
でもシェルに表示されるPS1は弄らずにウィンドウタイトルだけ変えたい。そんな時はエスケープシーケンスの送信によってscreenのウィンドウタイトルを変えることができるようです。以下man screenよりタイトル命名についての引用。

対話的に行うには、タイトル文字列用エスケープシーケンス (<esc>kname<esc>)と “title” コマンド(C-a A)がある。 前者をアプリケーションから出力させれば、 ソフトウェア制御でウィンドウの名前を変更できる。

PROMPT_COMMAND環境変数に設定されたコマンドは、プロンプトが表示される前に毎回実行されます。\033と\134は8進法でエスケープとバックスラッシュに相当します。
後は最初のコードみたいな感じでprintfを使ってkの後に好きなように文字列を設定します。

ちなみに${PWD/#$HOME/~}にある変数の後のスラッシュとかシャープ(ハッシュ)マークとかの意味は、Bashの文字列操作表記で$PWDの前方が$HOMEに当てはまったら~に置換するという機能のようです。(参考

参考:
PS1とPROMPT_COMMAND, GNU screenでの活用も

関連記事

no image

CentOS 6.5にPython 2.7をインストールしApacheで使用

Django 1.7はPython 2.7以上でないと使えないんですが、CentOS 6.5のデフォ

記事を読む

no image

JavascriptのDateで月が1つズレる

とかやった時になんか現在月より1つズレると思ったら、Dateクラスのmonthは0~11なのでし

記事を読む

no image

仮想マシンからwgetやcurlでhttpsダウンロードしようとして証明書エラー

VMware Player内のCentOSからPython2.7のソースを落とそうとしたら証明書エラ

記事を読む

no image

CentOS 6.5にPHP 5.5をインストール

CentOS 6.5の標準リポジトリだとPHPが5.3なので、5.5をインストールする方法を調べまし

記事を読む

no image

Google Play Musicアプリの音楽ライブラリから特定のフォルダを除外する方法

Google Play Musicアプリはデフォルトでローカル端末上の全ての音楽ファイルをリストアッ

記事を読む

no image

ファイルパーミッションを664から644に変えてもGitで反映されない

って思ったらGitのこと勘違いしてたっていうメモ。 Gitはファイルの実行属性の有無しか管理してい

記事を読む

no image

gでgit status、続く引数があったらgitに渡すシェルスクリプトを実装したメモ

最近コーディング時に腕の疲れを感じるようになってきたので、アホみたいでもなるべく短いaliasを.b

記事を読む

no image

『ワードバスケット攻略データベース』を作成しました

『ワードバスケット攻略データベース』を作成しました。 ワードバスケットとはカードを使ったしりとりのよ

記事を読む

no image

Djangoでエラー「(2019, “Can’t initialize character set utf8mb4 (path: /usr/share/mysql/charsets/)”)」

twitter関連で絵文字も格納するためDBの文字コードをutf8mb4にしたプロジェクトを久々にい

記事を読む

no image

JavaでBase32のデコーダーを実装

今書いてるプログラムでBase32エンコードされた文字列をデコードをする必要があったんですが、Jav

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

no image
gでgit status、続く引数があったらgitに渡すシェルスクリプトを実装したメモ

最近コーディング時に腕の疲れを感じるようになってきたので、アホみたいで

no image
JavaでBase32のデコーダーを実装

今書いてるプログラムでBase32エンコードされた文字列をデコードをす

no image
Bashのプロンプトを変えずにscreenのウィンドウタイトルだけ変える

先にコード例。.bashrcに書きます。 この例ではウィンドウ名

no image
Google Play Musicアプリの音楽ライブラリから特定のフォルダを除外する方法

Google Play Musicアプリはデフォルトでローカル端末上の

no image
PythonでC++のstd::mapみたいな挙動が欲しい

最近競技プログラミングの問題をちょろちょろやってて、それでC++を使っ

→もっと見る

PAGE TOP ↑