Linux BASH函数,用于处理退出它的函数';她来了
我有一个关于bash函数的问题。我正在尝试创建一个名为“checkexit”的函数,我可以在其他函数中调用该函数来检查是否需要退出该函数。我想尝试使用一个函数来处理这个问题,因为我不想反复使用相同的代码 话虽如此,但它不起作用,因为我使用的return命令只退出它当前所在的函数,而不是函数“checkexit”嵌套在其中的函数 我知道我可以走一条简单的路,只要在需要的地方添加这些代码,但是,我想尝试找到一些更优雅的东西 任何帮助都将不胜感激 以下是checkexit函数的代码:Linux BASH函数,用于处理退出它的函数';她来了,linux,bash,function,return,Linux,Bash,Function,Return,我有一个关于bash函数的问题。我正在尝试创建一个名为“checkexit”的函数,我可以在其他函数中调用该函数来检查是否需要退出该函数。我想尝试使用一个函数来处理这个问题,因为我不想反复使用相同的代码 话虽如此,但它不起作用,因为我使用的return命令只退出它当前所在的函数,而不是函数“checkexit”嵌套在其中的函数 我知道我可以走一条简单的路,只要在需要的地方添加这些代码,但是,我想尝试找到一些更优雅的东西 任何帮助都将不胜感激 以下是checkexit函数的代码: function
function checkexit {
if [ -z "$SITEURL" ] || [[ "$SITEURL" != *".whatever.net" ]]; then
#if exitscript set to yes, exit script
if [[ "$exitscript" = "YES" ]]; then
echo "Skipping $SITEURL"
echo
exitscript=""
return
else
echo "No Site URL provided. skipping!"
echo
return
fi
fi
if [[ "$exitscript" = "YES" ]] && [[ "$nodownload" = "YES" ]]; then
echo "Failed to download file, skipping items."
echo
exitscript=""
return
elif [[ "$exitscript" = "YES" ]] && [[ "$noitems" = "YES" ]]; then
echo "No items to download, skipping items."
echo
exitscript=""
return
elif [[ "$exitscript" = "YES" ]]; then
echo "Exit script triggered. Skipping $SITEURL"
echo
exitscript=""
return
fi
}
在
checkexit
中,使所有return
语句返回错误退出,例如return1
然后在调用函数中,使用
checkexit || return
不要试图直接从被调用函数内部管理调用方。有4个全局变量(
SITEURL
,exitscript
,nodownload
,noitems
),并且没有参数,你的函数对它的定位非常专业化。我的错。绝对地