我是 bash 命令和函数的新手。我有两个功能并试图在我的终端中显示它们
git_branch()
和
highlightExitCode()
这里我想通过export PS1
这两个函数来改变提示设置。我能够获得分支名称和表情符号,highlightExitCode()
但显示的表情符号总是来自 else 并且从不执行 if 部分。
有人可以让我知道我在这里做错了什么。
export PS1='[\@][\u] [\W]$(git_branch) $(highlightExitCode)\$ '
git_branch()
{
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
highlightExitCode()
{
exit_code=$?
if [ $exit_code -ne 0 ]
then
echo -en '\xf0\x9f\x98\xb1 '
else
echo -en '\xf0\x9f\x98\x80 '
fi
}
highlightExitCode
正在获取最后一个命令运行的退出状态,这是git_branch
在构造提示值时。
PROMPT_COMMAND
改为使用动态构建提示。在您的 .bashrc 文件中,
PROMPT_COMMAND=build_prompt
git_branch()
{
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
highlightExitCode()
{
if [ "$1" -ne 0 ]; then
echo -en '\xf0\x9f\x98\xb1 '
else
echo -en '\xf0\x9f\x98\x80 '
fi
}
build_prompt () {
last_exit=$?
PS1='[\@][\u] [\W]'
PS1+=$(git_branch)
PS1+=" $(highlightExitCode "$last_exit")"
PS1+='\$ '
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句