Как передать строку, состоящую из нескольких слов, в качестве аргумента в Linux

Когда вы выполняете какой-либо сценарий оболочки с не -интерактивной оболочкой без -входа в систему, в частности, используя систему (3)в какой-либо программе C (или запуская ее из crontab (5 )), ни один файл не загружается неявно.

Ваш скрипт может использовать исходный файл, используя .илиsourceвстроенную оболочку .

Возможно, вам следует позаботиться о том, какая среда (см. окружение (7))или какие файловые дескрипторы относятся к делу, и это зависит от того, как запускается ваш сценарий оболочки, что являются процессами-предками и т. д. Если вы запускаете свой сценарий из оболочки в окне терминала, он наследует многие вещи от вашей оболочки (, особенно ваш$PATH). Однако, если вы запустите этот сценарий по-другому (в каком-либо сценарии инициализации или systemd, через cron, batchили nohup,.... ), все может быть по-другому.

См. также демон (3 ), tty (4)....

Чтение fork (2 ), execve (2)(оба используются в вашей оболочке ), учетные данные (7)

Прочтите главу Загрузочные файлы Bash .

0
04.01.2020, 22:08
1 ответ

Что не так?:

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 ).

0
28.01.2020, 02:57

Теги

Похожие вопросы