Legen Sie den Titel für das Bash-Terminal unter Mac OS X auf das aktuelle Arbeitsverzeichnis fest

Legen Sie den Titel für das Bash-Terminal unter Mac OS X auf das aktuelle Arbeitsverzeichnis fest

Ich weiß, dass diese Frage schon oft gestellt wurde und bei mir hat es wunderbar geklappt, aber ich verstehe nicht, warum das hier anders ist.

 #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"'

Mein Problem hierbei ist, dass ich den zweiten verwenden möchte, dieser aber beim Öffnen eines neuen Taps zum Standardarbeitsverzeichnis zurückkehrt, während der erste dasselbe Arbeitsverzeichnis beibehält, wenn ich einen weiteren Tap öffne, was ich auch möchte.

Antwort1

Seltsam. Vielleicht hängt es damit zusammen, wann die Mustererweiterung in der Verarbeitungsreihenfolge von Bash stattfindet.

Etwas wie `PROMPT_COMMAND='BASED=${PWD##*/} echo -ne "\033]0;$BASED\007"' könnte funktionieren.

EDIT: Das hat nicht funktioniert? Vielleicht klappt das

set_prompt () {
    BASE_PATH="${PWD##*/}"
    echo -ne "\033]0;$BASE_PATH\007"
}

PROMPT_COMMAND=set_prompt

verwandte Informationen