Або те, що я тут прошу, є надзвичайно неортодоксальним / нетрадиційним / ризикованим, або мої навички Google-фу просто не піддаються нюханню ...
Чи є в bash
скрипті оболонки який-небудь простий спосіб сказати, чи отримується він іншим сценарієм оболонки, чи він запускається сам? Іншими словами, чи можна розмежувати дві наступні форми поведінки?
# from another shell script
source myScript.sh
# from command prompt, or another shell script
./myScript.sh
Що я думаю робити - це створити скрипт оболонки, подібний до утиліт, що містить bash
функції, які можуть бути доступні при отриманні. Коли цей сценарій запускається сам, я хотів би, щоб він виконував певні операції, базуючись на визначених функціях. Чи є якась змінна середовище, яку може взяти цей скрипт оболонки, наприклад
some_function() {
# ...
}
if [ -z "$IS_SOURCED" ]; then
some_function;
fi
Переважно, я шукаю рішення, яке не потребує скрипту абонента для встановлення змінних прапорців.
редагувати : Я знаю різницю між джерелом пошуку та запуском сценарію, те, що я намагаюся дізнатися тут, чи можна сказати різницю в сценарії, який використовується (в обох напрямках).
.
команду, а про те, щоб виявити, чи був скрипт розміщений або нормально запускається (тобто в підзарядці).