bash + return은 bash 스크립트에서만 함수 또는 스크립트에서 반환됩니다.

bash + return은 bash 스크립트에서만 함수 또는 스크립트에서 반환됩니다.

우리 모두 알고 있듯이 bash에서는 return 0을 사용하여 함수를 종료할 수 있습니다. 0은 표준 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

예, 스크립트가 소스라면 가능합니다. 종료하는 대신 이 작업을 수행하는 것이 좋습니다. 왜냐하면 종료를 사용하면 현재 사용 중인 셸에서도 종료되지만 return은 종료되지 않기 때문입니다. 스크립트를 직접 실행하면 해당 줄에서 오류가 발생 return하고 나머지 스크립트가 계속 실행됩니다.

관련 정보