Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.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
Linux BASH函数,用于处理退出它的函数';她来了_Linux_Bash_Function_Return - Fatal编程技术网

Linux BASH函数,用于处理退出它的函数';她来了

Linux BASH函数,用于处理退出它的函数';她来了,linux,bash,function,return,Linux,Bash,Function,Return,我有一个关于bash函数的问题。我正在尝试创建一个名为“checkexit”的函数,我可以在其他函数中调用该函数来检查是否需要退出该函数。我想尝试使用一个函数来处理这个问题,因为我不想反复使用相同的代码 话虽如此,但它不起作用,因为我使用的return命令只退出它当前所在的函数,而不是函数“checkexit”嵌套在其中的函数 我知道我可以走一条简单的路,只要在需要的地方添加这些代码,但是,我想尝试找到一些更优雅的东西 任何帮助都将不胜感激 以下是checkexit函数的代码: function

我有一个关于bash函数的问题。我正在尝试创建一个名为“checkexit”的函数,我可以在其他函数中调用该函数来检查是否需要退出该函数。我想尝试使用一个函数来处理这个问题,因为我不想反复使用相同的代码

话虽如此,但它不起作用,因为我使用的return命令只退出它当前所在的函数,而不是函数“checkexit”嵌套在其中的函数

我知道我可以走一条简单的路,只要在需要的地方添加这些代码,但是,我想尝试找到一些更优雅的东西

任何帮助都将不胜感激

以下是checkexit函数的代码:

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
),并且没有参数,你的函数对它的定位非常专业化。我的错。绝对地