source
특정 쉘에 대해 파일을 한 번만 가져오는 유사한 bash 명령이 있습니까 ?
예를 들어:
source_cached foo.sh # runs as normal
source_cached foo.sh # would not load foo.sh a second time
foo.sh 경로는 이미 가져왔으므로 다시 가져오지 않습니다.
답변1
당신이 원하는 것은 "Include Guard"입니다. Jonathan Leffler의 사이트에서 SO에 대한 예를 볼 수 있습니다.https://stackoverflow.com/a/7518684/6512983.
if [ -z "$B_SH_INCLUDED" ]
then
B_SH_INCLUDED=yes
...rest of original contents of b.sh
fi
기본적으로 포함된 파일에 변수를 정의하지만 변수가 있는지 미리 확인하고 이미 정의되어 있으면 일찍 반환합니다.