我想从一个在另一个脚本中调用,但也可以直接调用的BASH脚本中返回一个退出码。 大致是这样的:
#!/bin/bash
dq2-get $1
if [ $? -ne 0 ]; then
echo "ERROR: ..."
# EXIT HERE
fi
# extract, do some stuff
# ...
现在在EXIT HERE
这一行中,脚本应该退出并返回退出代码1。问题在于:
- 我不能使用
return
,因为当我忘记对脚本进行源调用而不是调用它时,return
将不会退出,剩下的脚本将被执行并搞乱事情。 - 我不能使用
exit
,因为这会关闭shell。 - 我不能使用好用的技巧
kill -SIGINT $$
,因为这不允许返回退出代码。
我有没有忽略任何可行的替代方案?
$SHLVL
的值并有条件地退出或不退出。 - MarkHu