在shell提示符上显示退出代码总是0,为什么

时间:2012-09-03 02:03:15

标签: bash

我希望在Bash shell提示符下显示退出代码,以便我可以轻松地知道上一个命令是否成功运行,但是,它总是显示0.这有什么问题吗?那么有可能达到预期的效果吗?

 PS1="\t <\w> ERR:$(echo $?) \$ "

enter image description here

- openSUSE 11.4上的Bash 4.1.10

1 个答案:

答案 0 :(得分:7)

您忘记转义$以便在执行分配时禁止扩展。

PS1="\t <\w> ERR:$(echo \$?) \$ "

22:04:48 <~/Work/tmp> ERR:x $ true
22:05:51 <~/Work/tmp> ERR:0 $ false
22:05:52 <~/Work/tmp> ERR:1 $