【发布时间】:2020-03-11 12:28:55
【问题描述】:
我已经像这样设置了我的 bash 提示符:
vcs(){
if [ $PROMPT_VCS -eq "1" ] && [ $have_vcprompt -eq "1" ]; then
echo -en "$(vcprompt -f "on ${EMM}%n${EMW}:%b${G}%m${R}%u${NONE}")"
fi
}
bash_prompt() {
case $TERM in
xterm*|rxvt*)
local TITLEBAR='\[\033]0;${SHORT_HOST} ${NEW_PWD}\007\]'
;;
*)
local TITLEBAR=""
;;
esac
local UC=$EMG
[ $UID -eq 0 ] && UC=$EMR
local ARROW_COLOR=$EMR
[ $? -eq 0 ] && ARROW_COLOR=$EMG
PS1="\[${TITLEBAR}\
${UC}\u \
${NONE}at ${EMY}\h \
${NONE}in ${EMB}\${NEW_PWD} \
${NONE}\$(vcs) \
${K} \
\[${NONE}\]\n\[${ARROW_COLOR}\]\$ \[${NONE}\]"
}
这在我运行 Debian 的笔记本电脑上完美运行,但在 Windows 上,使用 git-bash,我收到以下错误:
bash: command substitution: line 1: syntax error near unexpected token `)'
bash: command substitution: line 1: `vcs)'
VC 信息因此不会出现在提示中。我不明白为什么 git-bash 的右括号有问题..
【问题讨论】:
-
错误信息提示第一行是
vcs)而不是vcs()。是这样吗? -
不,这是按原样复制的。我也可以使用
vcs函数,它工作正常,只是在提示中它似乎会导致问题。 -
FWIW,我可以通过将
vcs()更改为vcs)来重现错误消息。 -
是行尾问题吗?也许是 CR-LF 而不是 LF?
-
其他人已经描述了这个问题:stackoverflow.com/questions/33220492/…
标签: windows bash git-bash prompt