function git_dir_helper() { current_dir=${PWD##*/} if git rev-parse --git-dir > /dev/null 2>&1 && [ ! -d .git ]; then git_dir_cdup=$(git rev-parse --show-cdup) git_dir_path=$(git rev-parse --show-prefix) git_dir_top="$( cd $git_dir_cdup > /dev/null echo ${PWD##*/} )" current_dir="$git_dir_top/${git_dir_path}" current_dir=${current_dir%/} fi echo -n $current_dir } function bash_prompt_command() { current_dir=$(git_dir_helper) PS1="$git_dir_helper" } # Using with bash PROMPT_COMMAND=bash_prompt_command # Using with zsh function precmd { PROMPT="$(itg_dir)" }