$? -ne 0不工作

时间:2013-11-12 01:37:50

标签: linux shell zsh oh-my-zsh

我一直试图创造一个花哨的oh-my-zsh主题,但不幸的是我遇到了一个令人讨厌的障碍。

eval gray='$FG[245]'
yellow='226'
ret=$?
# error check
[[ $ret -ne 0 ]] && yellow='100'#THIS LINE NOT FUNCTIONING
#prompt
PROMPT='$gray%~ $(git_prompt_info)${FG[$yellow]}%(!. ⚡ .»)%{$reset_color%}'
RPROMPT='$gray%n:%m%{$reset_color%}$?'

这是我到目前为止,第六行不起作用,我尝试过单括号,我尝试添加运行它作为sh而不是zsh,我也尝试交换$ ret for $ ?甚至将整个事物移动到一个完整的if-then设置,到目前为止,没有一个工作。我是以某种方式搞砸了语法,还是由于环境或实现而无法正常工作?
注:
这是oh-my-zsh所以这个配置文件是修改终端的命令提示符,$?是最后一次运行命令的返回值。

2 个答案:

答案 0 :(得分:3)

yellow='226'

这总是成功而且$?之后是0。

答案 1 :(得分:0)

罗杰是对的,失败的路线是无用的。但是,我认为您的主要问题是您使用单引号,并且不会发生字符串替换。

$ a=foo

$ echo "$a"
foo

$ echo '$a'
$a

所以,请使用双引号!单引号用于文字。