bash + return 仅在 bash 脚本中从函数或脚本中返回

bash + return 仅在 bash 脚本中从函数或脚本中返回

众所周知,在 bash 中我们可以使用 return 0 来退出函数,0 是 std 0

function fun1(){
  return 0
}

但是我们也可以在脚本本身而不是函数中使用 return 0 吗?

作为

#!/bin/bash

function fun1(){
  return 0
}

function fun2(){
  return 0
}

function fun3(){
  return 0
}
.
.
.
.
.

fun1
fun2
fun3

echo " script ended "


return 0

答案1

if [[ "$0" == "${BASH_SOURCE[0]}" ]]; then
    # I'm the "main" script
    exit
else
    # I'm being sourced
    return
fi

答案2

是的,如果该脚本是来源的话,你可以。您可能想要执行此操作而不是退出,因为如果您使用 exit,它也会从您正在获取的 shell 中退出,而 return 则不会。如果直接执行脚本,它将引发该return行错误并继续执行脚本的其余部分。

相关内容