【问题标题】:Customize zsh's prompt when displaying previous command exit code自定义 zsh 在显示上一个命令退出代码时的提示
【发布时间】:2011-05-26 20:37:37
【问题描述】:

Zsh 包括使用%? 转义序列在提示符中显示上一个命令的返回码/退出码的功能。

但是我希望得到以下提示:

user@host ~ [%?] %

当退出代码不为 0 并且:

user@host ~ %

当退出代码为 0 时。

如果我单独使用%?,它总是会显示,即使%? 是0。 另外我想要方括号,但前提是退出代码不是0。

最简单的方法是什么?

【问题讨论】:

  • 对我的提示很有帮助。我目前在 robbyrussell 主题中自定义的内容:PROMPT='${ret_status} %{$fg[cyan]%}%n@%m: %4~%{$reset_color%} $(git_prompt_info)'

标签: zsh exit-code


【解决方案1】:

将此添加到PS1 中您希望退出代码出现的位置:

%(?..[%?] )

这是一个条件表达式。如果第一个点之前的表达式为真,则输出两个点之间的部分(在这种情况下没有)。第二个点之后的部分如果为假则输出。

例如:

PS1='%n%m %~ %(?..[%?] )%# '

【讨论】:

    【解决方案2】:

    或者,您可以:

    setopt PRINT_EXIT_VALUE
    

    总是打印一个显示先前返回值的换行符。

    我不喜欢这个用于普通用途,但它通常对调试 shell 脚本很有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-30
      • 2013-02-08
      • 1970-01-01
      • 1970-01-01
      • 2013-08-14
      • 2012-01-07
      • 2020-12-24
      相关资源
      最近更新 更多