保留退出代码或使用 Bash 将其分配给变量的最佳方法是什么?

What's the best way to preserve an exit code or assign it to a variable with Bash?

我正在尝试将 运行 psql 的退出代码保存在 shell 脚本中。假设在此代码段之前的 psql 命令是错误的,我希望此代码段 return 除了 1 之外的任何东西,它最初是这样做的。但是当我将它分配给 exitcode 然后 echo 它时, returned 值是 0...

$ echo $?
    1
$ exitcode=$?
$ echo 'simply'
    simply
$ #echo $?
    0
$ #echo 'coding'
    coding
$ echo $exitcode
    0

我正在尝试让变量 exitcode 像第一行那样打印或回显 1。我该怎么做?

第二次打印$?时,不是上一个命令的退出代码。 您需要在 运行 任何其他命令之前立即将 $? 分配给 exitcode

$ psql
$ echo $?
    1
$ exitcode=$?

应该是

$ psql
$ exitcode=$?

为了保留 psql 的退出代码。