![Mac OS X の bash ターミナルのタイトルを現在の作業ディレクトリに設定する](https://rvso.com/image/1366220/Mac%20OS%20X%20%E3%81%AE%20bash%20%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB%E3%81%AE%E3%82%BF%E3%82%A4%E3%83%88%E3%83%AB%E3%82%92%E7%8F%BE%E5%9C%A8%E3%81%AE%E4%BD%9C%E6%A5%AD%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%AB%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%20.png)
彼らがこの質問を何度もしてきたことは知っていますし、私も完璧に解決できましたが、私が理解できないのは、なぜこれが違うのかということです。
#This will show the full path (/usr/bin)
PROMPT_COMMAND='echo -ne "\033]0;${PWD}\007"'
#This will set to the directory name only (bin)
PROMPT_COMMAND='echo -ne "\033]0;${PWD##*/}\007"'
ここで問題となるのは、2 番目のタップを使用したいのですが、新しいタップを開くとデフォルトの作業ディレクトリに戻ってしまいます。一方、最初のタップでは、別のタップを開いても同じ作業ディレクトリが保持されてしまいます。
答え1
奇妙ですね。おそらく、bash の処理順序でパターン拡張が行われるタイミングに関係しているのでしょう。
`PROMPT_COMMAND='BASED=${PWD##*/ echo -ne "\033]0;$BASED\007"' のようなものが役に立つかもしれません。
編集: うまくいかなかった? たぶんこれで
set_prompt () {
BASE_PATH="${PWD##*/}"
echo -ne "\033]0;$BASE_PATH\007"
}
PROMPT_COMMAND=set_prompt