将 Shell 脚本的存储过程异常返回给调用者
Throwing Shell script's Stored procedure Exception Back to the Caller
我有一个 Shell 脚本 A,它调用 Shell 脚本 B,它调用 ISQL 中的存储过程。 Shell 脚本 B 的存储过程中的异常必须返回到原始 Shell 脚本 A。知道如何做到这一点吗?
@narasimhakulkami:在 POSIX shell 脚本的上下文中 抛出异常 是什么意思?除了对某些可能被接收进程捕获的合适信号使用 kill
之外,没有可用的异常机制。
您可以请求 exception-catching 进程在环境变量中提供它自己的 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
我有一个 Shell 脚本 A,它调用 Shell 脚本 B,它调用 ISQL 中的存储过程。 Shell 脚本 B 的存储过程中的异常必须返回到原始 Shell 脚本 A。知道如何做到这一点吗?
@narasimhakulkami:在 POSIX shell 脚本的上下文中 抛出异常 是什么意思?除了对某些可能被接收进程捕获的合适信号使用 kill
之外,没有可用的异常机制。
您可以请求 exception-catching 进程在环境变量中提供它自己的 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