如何将Tnspi​​ng输出存储在变量中?

时间:2017-02-17 11:08:54

标签: oracle shell tnsping

从shell发送命令:

tnsping myDB

我获得了输出:

好(1毫秒)

如何将此输出存储在变量中,以便我可以测试是否正常?

1 个答案:

答案 0 :(得分:1)

You can store the output of a command using command substitution

但是,你说你想检查结果。如果您存储该字符串输出,则需要将其解析为仅查找' OK' (因为ping时间可能不同),并处理横幅信息等(虽然这相对容易)。

tnsping命令而不是输出中查看返回代码会更简单:

tnsping myDB
echo $?

您可以测试$?的值。如果ping是正确的那么它将为零;否则它将是1.

您还没有说过您想要对测试结果做些什么。如果你想显示错误(如果有的话),如果它有效,你可以将它们结合起来:

RESULT=$( tnsping myDB )
if [[ $? -ne 0 ]]; then
  printf "Ping failed, output was\n\n"
  printf "%s\n" "${RESULT}"
fi