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

Jim*_*hen 1 bash

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

 PS1="\t <\w> ERR:$(echo $?) \$ "
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

- 关于openSUSE 11.4的Bash 4.1.10

Ign*_*ams 7

你忘了逃避它$,以便在执行赋值时禁止扩展.

PS1="\t <\w> ERR:$(echo \$?) \$ "
Run Code Online (Sandbox Code Playgroud)

​

22:04:48 <~/Work/tmp> ERR:x $ true
22:05:51 <~/Work/tmp> ERR:0 $ false
22:05:52 <~/Work/tmp> ERR:1 $ 
Run Code Online (Sandbox Code Playgroud)