在.profile
我的bash提示符變量是這樣的:Bash提示符不會轉換轉義字符
# $vars
# Always display last 2 directories of current path
current_dir() {
pwd | awk -F\/ '{print $(NF-1),$(NF)}' | sed 's/ /\//g'
}
# Current git branch
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
txtblk='\e[0;30m' # Black - Regular
txtred='\e[0;31m' # Red
txtgrn='\e[0;32m' # Green
txtylw='\e[0;33m' # Yellow
txtblu='\e[0;34m' # Blue
txtpur='\e[0;35m' # Purple
txtcyn='\e[0;36m' # Cyan
txtwht='\e[0;37m' # White
bldblk='\e[1;30m' # Black - Bold
bldred='\e[1;31m' # Red
bldgrn='\e[1;32m' # Green
bldylw='\e[1;33m' # Yellow
bldblu='\e[1;34m' # Blue
bldpur='\e[1;35m' # Purple
bldcyn='\e[1;36m' # Cyan
bldwht='\e[1;37m' # White
unkblk='\e[4;30m' # Black - Underline
undred='\e[4;31m' # Red
undgrn='\e[4;32m' # Green
undylw='\e[4;33m' # Yellow
undblu='\e[4;34m' # Blue
undpur='\e[4;35m' # Purple
undcyn='\e[4;36m' # Cyan
undwht='\e[4;37m' # White
bakblk='\e[40m' # Black - Background
bakred='\e[41m' # Red
badgrn='\e[42m' # Green
bakylw='\e[43m' # Yellow
bakblu='\e[44m' # Blue
bakpur='\e[45m' # Purple
bakcyn='\e[46m' # Cyan
bakwht='\e[47m' # White
txtrst='\e[0m' # Text Reset
# User Current path (last 2 dirs) Git branch Switch to white color
export PS1="$txtcyn\u $txtpur\$(current_dir) $txtgrn\$(parse_git_branch)\[\033[00m\] \n\$ "
所以我的bash提示符實際上應該顯示我的用戶名,當前目錄中的git分支(如果有的話),並然後在新行中輸入$
(就像上面評論的那樣)。 但相反,它顯示了字符串字面,而無需更換變量或轉義字符,像這樣:
我在做什麼錯?
編輯:我用iTerm2在Mac
你是不是採取新的會議或加載新的.profile,因爲它看起來它爲我工作。 – RavinderSingh13
是的。我嘗試過'source〜/ .profile'。 我甚至在'.profile'文件的頂部聲明瞭一個測試變量,並在採購後對其進行回顯。這工作。所以這個文件是最新的。 – Groschenroman
我正在使用iTerm2。也許這有點相關。 – Groschenroman