Oracle 如何将Tnsping输出存储在变量中?

Oracle 如何将Tnsping输出存储在变量中?,oracle,shell,tnsping,Oracle,Shell,Tnsping,从shell命令启动: tnsping myDB 我获得输出: 正常(1毫秒) 如何将此输出存储在变量中,以便测试是否正常? 但是,你说你想检查结果。如果存储该字符串输出,则需要对其进行解析以仅查找“OK”(因为ping时间可能不同),并处理横幅信息等(尽管这相对容易) 查看tnsping命令的返回代码比查看其输出更简单: tnsping myDB echo $? 您可以测试$?的值。如果ping正常,那么它将为零;否则它将是1 你还没有说你想对测试结果做什么。如果要显示错误(如果存在错误),

从shell命令启动:

tnsping myDB

我获得输出:

正常(1毫秒)

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

但是,你说你想检查结果。如果存储该字符串输出,则需要对其进行解析以仅查找“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