export VARIABLE_NAME='some value'
це спосіб встановити змінну середовища в будь-який POSIX-сумісної оболонці ( sh
, dash
, bash
, ksh
, і т.д.; також ЗШ). Якщо змінна вже має значення, ви можете використовувати export VARIABLE_NAME
її для змінної середовища, не змінюючи її значення.
Оболонки Pre-POSIX Bourne не підтримували це, тому ви побачите сценарії, які уникають export VARIABLE_NAME='some value'
та використовують VARIABLE_NAME='some value'; export VARIABLE_NAME
натомість. Але снаряди перед POSIX Bourne в наш час надзвичайно рідкісні.
setenv VARIABLE_NAME='some value'
синтаксис csh для встановлення змінної середовища. setenv
не існує sh, і csh вкрай рідко використовується в сценаріях і був перевершений bash для інтерактивного використання протягом останніх 20 років (і zsh ще довше), тому ви можете забути про нього, якщо не зіткнетеся з ним.
env
Команда дуже рідко використовується тільки в хатину ліній . Якщо викликається без аргументів, він відображає середовище, але export
робить це краще (сортується та часто цитується для розмежування нових рядків у значеннях від нових рядків, що розділяють значення). При виклику аргументів вона запускає команду з додатковими змінними середовища, але та сама команда без env
також працює ( VAR=value mycommand
працює mycommand
з VAR
встановленим на value
, точно так само env VAR=value mycommand
). Причина env
, корисна в рядку shebang, полягає в тому, що вона виконує PATH
пошук, і, трапляється, не робить нічого іншого, коли викликається ім'я команди. env
Команда може бути корисна для виконання команди з допомогою всього декількох змінних оточення з-i
або без параметрів для відображення середовища, включаючи змінні з недійсними іменами, які оболонка не імпортує.
VAR=asdf
оновлює навколишнє середовище, якщоVAR
воно вже було в середовищі. (Це не було правдою в оригінальній оболонці Борна.)