Когда вы выполняете какой-либо сценарий оболочки с не -интерактивной оболочкой без -входа в систему, в частности, используя систему (3)в какой-либо программе C (или запуская ее из crontab (5 )), ни один файл не загружается неявно.
Ваш скрипт может использовать исходный файл, используя .
илиsource
встроенную оболочку .
Возможно, вам следует позаботиться о том, какая среда (см. окружение (7))или какие файловые дескрипторы относятся к делу, и это зависит от того, как запускается ваш сценарий оболочки, что являются процессами-предками и т. д. Если вы запускаете свой сценарий из оболочки в окне терминала, он наследует многие вещи от вашей оболочки (, особенно ваш$PATH
). Однако, если вы запустите этот сценарий по-другому (в каком-либо сценарии инициализации или systemd, через cron
, batch
или nohup
,.... ), все может быть по-другому.
См. также демон (3 ), tty (4)....
Чтение fork (2 ), execve (2)(оба используются в вашей оболочке ), учетные данные (7)
Прочтите главу Загрузочные файлы Bash .
Что не так?:
function myFunction { echo "$@"; }
myFunction "$@" Arg1 Arg2 I am a multivariable element and yeah is rock
Запуск этого скрипта напечатает:
$./script Hello World!
Hello World! Arg1 Arg2 I am a multivariable element and yeah is rock
Или, если вы хотите преобразовать все аргументы в строку (, разделенную пробелами):
IFS=$' \t\n' var=$*
Или, в некоторых оболочках:var="$@"
(не устанавливая IFS ).