-
Star
(224)
You must be signed in to star a gist -
Fork
(28)
You must be signed in to fork a gist
-
-
Save phette23/5270658 to your computer and use it in GitHub Desktop.
| # put this in your .bash_profile | |
| if [ $ITERM_SESSION_ID ]; then | |
| export PROMPT_COMMAND='echo -ne "\033];${PWD##*/}\007"; ':"$PROMPT_COMMAND"; | |
| fi | |
| # Piece-by-Piece Explanation: | |
| # the if condition makes sure we only screw with $PROMPT_COMMAND if we're in an iTerm environment | |
| # iTerm happens to give each session a unique $ITERM_SESSION_ID we can use, $ITERM_PROFILE is an option too | |
| # the $PROMPT_COMMAND environment variable is executed every time a command is run | |
| # see: ss64.com/bash/syntax-prompt.html | |
| # we want to update the iTerm tab title to reflect the current directory (not full path, which is too long) | |
| # echo -ne "\033;foo\007" sets the current tab title to "foo" | |
| # see: stackoverflow.com/questions/8823103/how-does-this-script-for-naming-iterm-tabs-work | |
| # the two flags, -n = no trailing newline & -e = interpret backslashed characters, e.g. \033 is ESC, \007 is BEL | |
| # see: ss64.com/bash/echo.html for echo documentation | |
| # we set the title to ${PWD##*/} which is just the current dir, not full path | |
| # see: stackoverflow.com/questions/1371261/get-current-directory-name-without-full-path-in-bash-script | |
| # then we append the rest of $PROMPT_COMMAND so as not to remove what was already there | |
| # voilà! |
This is just perfect! Thanks
Hi, the correct line (for bash) should be:
export PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND; }echo -ne \"\033];\${PWD##*/}\007\""in order to properly append to an existing PROMPT_COMMAND
Source: /etc/bashrc_Apple_Terminal on macOS Ventura
Hi, the correct line (for bash) should be:
export PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND; }echo -ne \"\033];\${PWD##*/}\007\""in order to properly append to an existing PROMPT_COMMAND
Source:
/etc/bashrc_Apple_Terminalon macOS Ventura
This fixed the problem I was having, similar to @kenjoegolo above: any time I ran source ~/.bash_profile I would get bash: :echo: command not found, which would persist. Each successive time I ran source ~/.bash_profile, the number of times bash: :echo: command not found displayed would increment (and persist).
Once I replaced the export with @Offirmo 's version, the problem stopped.
Thanks @dvbowen! For clarity, here's what Preferences > Profile should look like:
And .zshrc:
DISABLE_AUTO_TITLE="true" precmd() { # sets the tab title to current dir echo -ne "\e]1;${PWD##*/}\a" }
Working like a charm ! 🔥🚀





Success! Thank your