gpt4 book ai didi

linux - 处理调用它的函数退出的 BASH 函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:03:33 26 4
gpt4 key购买 nike

我有一个关于 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 语句返回错误退出,例如 return 1

然后在你的调用函数中,调用它

checkexit || return

不要试图直接从被调用函数内部管理调用者。

关于linux - 处理调用它的函数退出的 BASH 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52971195/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com