当编写源于另一个文件的bash时,有时我想跳过处理,如果某些条件为真。现在,我一直是:
这两种策略都有一些缺点。如果我能用这种代码风格编写我的脚本会好得多:
main.sh
echo "before"
. other
echo "after"
other.sh
# guard
if true; then
# !! return to main somehow
fi
if true; then
# !! return to main somehow
fi
# commands
echo "should never get here"
有没有办法做到这一点,以便调用主中的echo "after"
行?
答案 0 :(得分:5)
是的,你可以return
:
if true; then
return
fi
引用help return
:
return: return [n]
从shell函数返回。
使函数或源脚本以返回值退出 由N指定。如果省略N,则返回状态为 在函数或脚本中执行的最后一个命令。
退出状态: 如果shell没有执行函数或脚本,则返回N或失败。