Я намагаюся зрозуміти використання exportкоманди.
Я спробував використовувати man export, але керівництва для цієї команди немає.
Чи може хто-небудь допомогти мені зрозуміти використання exportUNIX?
Я намагаюся зрозуміти використання exportкоманди.
Я спробував використовувати man export, але керівництва для цієї команди немає.
Чи може хто-небудь допомогти мені зрозуміти використання exportUNIX?
Відповіді:
Під час виконання програми дочірня програма успадковує змінні середовища від батьківського. Наприклад, якщо в батьківському вікні $HOMEвстановлено значення, /rootтоді $HOMEтакож встановлена змінна дитина /root.
Це стосується лише змінної середовища, позначеної для експорту. Якщо ви встановите змінну в командному рядку типу
$ FOO="bar"
Ця змінна не буде видно у дочірніх процесах. Якщо ви не експортуєте його:
$ export FOO
Ви можете об'єднати ці два твердження в одне в bash (але не в old-school sh):
$ export FOO="bar"
Ось короткий приклад, що показує різницю між експортованими та неекспортованими змінними. Щоб зрозуміти, що відбувається, знайте, що sh -cстворюється процес дочірньої оболонки, який успадковує середовище батьківської оболонки.
$ FOO=bar
$ sh -c 'echo $FOO'
$ export FOO
$ sh -c 'echo $FOO'
bar
Примітка. Щоб отримати допомогу щодо вбудованих команд оболонки, використовуйте help export. Вбудовані оболонки - це команди, які є частиною вашої оболонки, а не незалежними виконуваними файлами /bin/ls.
Unix
Команди env, set та printenv відображають усі змінні середовища та їх значення. env і set також використовуються для встановлення змінних середовища і часто включаються безпосередньо в оболонку. printenv також може використовуватися для друку однієї змінної, даючи ім'я змінної як єдиний аргумент команди.
У Unix також можуть використовуватися такі команди, але вони часто залежать від певної оболонки.
export VARIABLE=value # for Bourne, bash, and related shells
setenv VARIABLE value # for csh and related shells
Ви можете подивитися на це в
VARIABLE=value; export VARIABLEа не призначати та експортувати одразу. setКоманди в оболонці C для змінних оболонки , а не змінні оточення; setenvє аналогом export. setКоманда в Bourne отриманих з оболонок друкує всі змінні, а не тільки експортовані (середа) змінні. Принаймні історично, envкоманда відокремлена від оболонки (не вбудованої), хоча її можна легко перетворити на вбудований. Він встановлює середовище для конкретної команди, а не оболонку, яка виконує її.
exportце вбудована команда bashоболонки та інші варіанти оболонки Борна . Він використовується для позначення змінної оболонки для експорту в дочірні процеси.