2013-03-28 9 views
0

Я новичок в Unix, и я знаю, что команда export может быть использован для создания переменных сеанса, но какова цель ниже команды:Команда Экспорт в Unix

bash-3.2$ export $TEST 
declare -x PWD="/home/username" 
declare -x SHELL="/bin/bash" 
declare -x SSH_TTY="/dev/pts/4" 
declare -x USER="username" 

Пожалуйста, помогите мне понять эту команду , У меня нет переменной с именем TEST, но когда я дал эту команду, оболочка напечатала некоторый вывод.

+0

Возможный дубликат [Как использовать declare -x в bash] (http://stackoverflow.com/questions/5785668/how-to-use-declare-x-in-bash) –

ответ

2

Оболочка расширила несуществующую переменную $TEST в пустую строку и затем выполнила команду export без аргументов. Когда вы это сделаете, оболочка перечисляет экспортированные переменные среды.

Если вы хотите экспортировать пустую переменную TEST, вы должны быть написаны какие-либо из них:

export TEST 
export TEST= 
export TEST='' 
export TEST="" 

(и в этом случае, есть и другие способы достичь того же эффекта, такие как export TEST=$TEST или, более или менее здраво, export TEST="$TEST", но это, как правило, сокращенно export TEST.)

подробное declare -x обозначения на выходе предназначен, чтобы позволить вам взять записать вывод в файл, а затем перезагрузить среду с . (точка) или source команд. Различные оболочки отображают результат по-разному и необязательно повторно используются.

Команда set аналогична (но сложнее). Его можно использовать для установки параметров оболочки, для установки позиционных аргументов ($1, $2 и т. Д.), Но при запуске без аргументов он перечисляет заданные переменные. Обратите внимание, что не каждая созданная переменная представляет собой экспортированную переменную среды.