问题描述
我有一个Shell脚本A,它调用Shell脚本B,该脚本在其中的Isql中调用存储过程。 Shell脚本B的存储过程中的异常必须扔回到原始Shell脚本A。任何想法如何做到这一点?
解决方法
@narasimhakulkami:在POSIX shell脚本中,抛出异常是什么意思?除了将kill
用于一些可能被接收过程捕获的合适信号之外,没有可用的异常机制。
您可以请求异常捕获过程在环境变量中提供其自己的PID,然后对该PID进行kill
,但是您当然不能使用此信号传达任何其他信息(例如确切的异常消息),无论如何这将是一个糟糕的设计。
这是解决方案:
iSQL > $output_file
status='cat $output_file'
if [$status== "Login Failed"]; then
echo "Login Failed error"
elif [$status== "Permission Denied"]; then
echo "Permission Denied error"
else [$status== "Connection error"]; then
echo "Connection Denied Error"
fi
Or
$status='grep "permission denied" $tmp.txt | sed 'g/ /d' | cut -d":" -f2'
echo $status