Если вы используете сценарии-источники, вы обычно используете их для определения функций и / или переменных.
Это означает, что вы можете проверить, был ли сценарий получен ранее, проверяя одну из функцийили переменные, которые он определяет.
Например (в b.sh
):
if [ -z "$B_SH_INCLUDED" ]
then
B_SH_INCLUDED=yes
...rest of original contents of b.sh
fi
Нет другого способа сделать это, о котором я знаю.В частности, вы не можете делать ранние выходы или возвраты, потому что это повлияет на оболочку, использующую файл.Вам не нужно использовать имя, которое предназначено исключительно для файла;Вы можете использовать имя, которое всегда определено в файле.