Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Unix中捕获并检查bteq返回代码_Unix_Teradata_Return Code - Fatal编程技术网

在Unix中捕获并检查bteq返回代码

在Unix中捕获并检查bteq返回代码,unix,teradata,return-code,Unix,Teradata,Return Code,我正在开发一个脚本,它依次调用其他几个脚本(.ksh)。基本上,当其中一个失败时,他们不应该继续下一个。因此,我尝试在一个涉及bteq(基本Teradata查询)会话的脚本中检查返回代码。请查看以下场景: bteq <<EOF! .run file ${TGTRUNFILEN} ; .maxerror 1; .set width 245; ... ... sel * from table ; .if ACTIVITYCOUNT <> 0 then .GOT

我正在开发一个脚本,它依次调用其他几个脚本(.ksh)。基本上,当其中一个失败时,他们不应该继续下一个。因此,我尝试在一个涉及
bteq
(基本Teradata查询)会话的脚本中检查返回代码。请查看以下场景:

 bteq <<EOF!
 .run file ${TGTRUNFILEN} ;
 .maxerror 1;
 .set width 245;
 ...
 ...
 sel * from table ;
 .if ACTIVITYCOUNT <> 0 then .GOTO QUIT
 .os mail command "error msg"
 exit 1;
 .LABEL QUIT
 .quit;
EOF!
echo $rcode
rcode=$?    
if [[ $rcode != 0 ]]
     then
         echo "$0: Insufficient Perm Space : username " >&2
         exit 4
fi

bteq您好,非常感谢您的回复。我找到了克服这个问题的方法。我刚刚添加了这样的“set”命令

 set +e
 bteq <<EOF!
 ...
 ...
 EOF!
 rcode=$?
 set -e
set+e

b如果在
if
测试之前
echo$rcode
会发生什么:值是否为0?
bteq
是否实际按需以非零状态退出?即使give
echo$rcode
,也不会发生任何事情。在
exit
quit
语句之后,我看不到任何内容。我现在完全不知道。因为您截断了脚本的顶部,我们无法看到here文档行。请加上这个。它应该包含这样的内容:
bteq谢谢Jon。但是我检查过了,没有空格。我已经在上面添加了here文档行。我没有看到任何错误。仍然不清楚我遗漏了什么。在
bteq
之前的顶部有一个后引号,在
fi
之后的底部有一个单引号;我假设这些并没有真正出现在你的真实脚本中,因为它们使你的脚本在语法上不正确。如果它们都是反引号,那就意味着什么——但可能不是你想要的。