Comment puis-je envoyer le répertoire de travail actuel de bash à Terminal?

2

J'ai créé une très belle invite bash personnalisée .bash_profile, mais j'ai remarqué que je ne pouvais plus ouvrir de nouveaux onglets dans le même répertoire ni voir l'icône du répertoire de travail en cours dans la barre de titre.

Comment puis-je récupérer ça?

J'ai fait quelques progrès dans la direction en ajoutant "\e]2;\w\a"à $PS1, mais cela affiche le chemin complet dans la barre de titre, pas seulement le nom du répertoire de travail. Toutes les suggestions seraient grandement appréciées.

Soumya
la source

Réponses:

1

Avez-vous changé PROMPT_COMMAND? La valeur par défaut PROMPT_COMMANDest définie dans /etc/bashrc:

# Tell the terminal about the working directory at each prompt.
if [ "$TERM_PROGRAM" == "Apple_Terminal" ] && [ -z "$INSIDE_EMACS" ]; then
    update_terminal_cwd() {
        # Identify the directory using a "file:" scheme URL,
        # including the host name to disambiguate local vs.
        # remote connections. Percent-escape spaces.
        local SEARCH=' '
        local REPLACE='%20'
        local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}"
        printf '\e]7;%s\a' "$PWD_URL"
    }
    PROMPT_COMMAND="update_terminal_cwd; $PROMPT_COMMAND"
fi
Lri
la source
Ouais ... J'ai écrasé PROMPT_COMMAND pour suivre le temps qu'il a fallu à la dernière commande pour s'exécuter. Cette fonction a fait l'affaire. Merci!
Soumya
1
Remarque: Ne copiez pas simplement ce code dans votre script de démarrage. Ce code est installé sur le système et vous devez continuer à utiliser tout ce qui est installé, car il se met à jour au fil du temps. En particulier, ce code a été considérablement revu sous OS X 10.11 El Capitan pour fonctionner avec tous les noms de chemins (la version ci-dessus ne gère pas les caractères non-ASCII). Lorsque vous personnalisez, PROMPT_COMMANDajoutez vos commandes comme ceci:PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND; }your_code_here"
Chris Page