在Shell脚本中捕获db2命令的返回代码

时间:2018-09-12 13:02:29

标签: bash

x=`su - db2inst1 -c "db2 get dbm cfg" |grep KEYSTORE_LOCATION | awk '{print $5}'`
rc="$?"
echo "${rc}"

这回显0。

如果我强制执行错误的命令

x=`su - db2inst1 -c "db get dbm cfg" |grep KEYSTORE_LOCATION | awk '{print $5}'`
rc="$?"
echo "${rc}"

这给了我一个错误:

-bash: db: command not found

,但仍给出0的返回码。我认为这是任务。但是我如何评估该命令。

1 个答案:

答案 0 :(得分:2)

set -o pipefail

默认情况下,管道的返回值是最后一条命令(此处为awk '{print $5}')的退出代码。打开pipefail可以使管道在任何命令(不仅是最后一条命令)失败的情况下失败。