不惑: shell函数中可以使用return语句提前返回
疑惑:有些shell脚本中,函数外也会出现return;有些shell脚本中在函数外写return就执行失败
参考:
1 2 3 4 5 6 7 8 9 10 |
# help return return: return [n] 从一个 shell 函数返回。 使一个函数或者被引用的脚本以指定的返回值 N 退出。 如果 N 被省略,则返回状态就是 函数或脚本中的最后一个执行的命令的状态。 退出状态: 返回 N,或者如果 shell 不在执行一个函数或引用脚本时,失败。 |
解惑:
- 函数中可以使用return语句
- 被引用的脚本(就是source 或 dot 方式执行的脚本)中函数外也可以使用return; 使用 sh script.sh 方式执行的script.sh 中不能出现函数外的return语句; 即: 如果在函数外使用return语句,你要清楚你的脚本是用来被source的,而不是被 sh 的;
- 其他情况下的return语句将返回失败