首页 > 解决方案 > 在 shell 脚本中捕获 db2 命令的返回码

问题描述

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 返回码。我认为它的任务。但是我如何评估命令。

标签: bash

解决方案


set -o pipefail

默认情况下,管道的返回值是最后一个命令的退出代码——这里是awk '{print $5}'. 如果任何命令失败,则打开pipefail以使管道失败,而不仅仅是最后一个。


推荐阅读