【发布时间】:2018-08-08 17:25:56
【问题描述】:
我认为我在PS1 中转义序列的方式有问题。事实上,我知道这就是问题所在。我的问题是我没有正确逃避什么?
declare __host='\[\e[30;102m\] \h \[\e[0m\]';
declare __dir='\[\e[1;97;44m\] \w \[\e[22m\]';
declare __arrow='\[\e[1m\]▸ \[\e[0m\]';
function __git_status() {
local info;
info=$(__git_info);
[[ $? -eq 0 ]] && printf "\e[30;43m%s" "$info";
}
export PS1="$__host$__dir"'$(__git_status)'"$__arrow ";
【问题讨论】:
-
一般来说,顺便说一句,你不应该
export动态生成的PS1;子进程外壳将无法访问控制它的元数据。并查看wiki.bash-hackers.org/scripting/obsolete re:function关键字。 -
嘿,你能把你怎么得到
__git_info的帖子贴出来吗?我很好奇,如果可以的话,我想把它添加到我的bashrc。 -
@jeremysprofile 给你! gist.github.com/Nxt3/1a90673fbbe88d6ec01d8073b4d850d4