web-dev-qa-db-ja.com

画面に現在実行中のプロセス名が表示されないのはなぜですか? (Mac OSXターミナルbash)

Mac OSXターミナルアプリ(bash)内でscreenを実行しています。

これがscreenrcです( ここ から取得):

$ cat ~/.screenrc 
termcapinfo xterm* ti@:te@
startup_message off
defutf8 on
shelltitle "$ |what?" # make screen assign window titles automatically
hardstatus alwayslastline
hardstatus string '%{= kw} [ %{= kb}%H%{= kw} ][%= %{= kw}%?%-Lw?%{= kW}%n*%f %t%?%?%{= kw}%?%+Lw%?%?%= ][ %{r}%l%{w} ]%{w}[%{r} %m/%d/%y/ %C %A %{w}]%{w}'
$

ご覧のとおり、現在のプロセス名をタイトルとして画面に表示する行があります。

shelltitle "$ |what?" # make screen assign window titles automatically

しかし、画面の中には「何?」と表示されます。 (デフォルト)process-nameの代わりに。これは、「$」が機能していないことを示しています。

何が足りないのですか?そして、「$ | something-else」はどのように機能しますか?

7
arnab

Bashプロンプトは何に設定されていますか(つまり、PS1変数)?

.bashrcまたは.profileで次を試してください。

export PS1='\[\033k\033\\\]\u@\h:\w\$ '

そしてあなたの.screenrcで:

shelltitle "$ |bash:"

これは私が持っているものであり、それは機能します。基本的に、画面には、実行中のコマンドを取得できるように、プロンプトがどのように終了するかを知るためのマジックストリングが必要です。変更することもできますが、その仕組みの詳細については、このページの説明を参照してください。

5
ars