우리 모두 알고 있듯이 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
하고 나머지 스크립트가 계속 실행됩니다.