Настройка переменных среды в Linux с помощью Bash


на tcsh, У меня работает следующий скрипт:

#!/bin/tcsh
setenv X_ROOT /some/specified/path

setenv XDB    ${X_ROOT}/db
setenv PATH   ${X_ROOT}/bin:${PATH}

xrun -d xdb1 -i  > 

что эквивалентно

5 60

5 ответов:

export VAR=value установит значение VAR. Заключите его в одинарные кавычки, если вам нужны пробелы, например export VAR='my val'. Если вы хотите, чтобы переменная была интерполирована, используйте двойные кавычки, например export VAR="$MY_OTHER_VAR".

причина, по которой люди часто предлагают писать

VAR=value
export VAR

вместо более короткого

export VAR=value

заключается в том, что более длинная форма работает в более разных оболочках, чем короткая форма. Если вы знаете, что имеете дело с bash, либо работает нормально, конечно.

установите локальную переменную и переменную окружения с помощью Bash на Linux

Проверьте локальные или переменные среды для переменной с именем LOL в Bash:

el@server /home/el $ set | grep LOL
el@server /home/el $
el@server /home/el $ env | grep LOL
el@server /home/el $

проверьте, нет местных или переменную окружения под названием ЛОЛ.

установите локальную переменную с именем LOL в local, но не в environment. Так что установите его:

el@server /home/el $ LOL="so wow much code"
el@server /home/el $ set | grep LOL
LOL='so wow much code'
el@server /home/el $ env | grep LOL
el@server /home/el $

переменная ' LOL ' существует в локальных переменных, но не в переменных окружения. Лол будет исчезнет, если вы перезагрузите терминал, выход из системы / войти или запустить exec bash.

установите локальную переменную, а затем очистите все локальные переменные в Bash

el@server /home/el $ LOL="so wow much code"
el@server /home/el $ set | grep LOL
LOL='so wow much code'
el@server /home/el $ exec bash
el@server /home/el $ set | grep LOL
el@server /home/el $

вы также можете просто снять одну переменную:

el@server /home/el $ LOL="so wow much code"
el@server /home/el $ set | grep LOL
LOL='so wow much code'
el@server /home/el $ unset LOL
el@server /home/el $ set | grep LOL
el@server /home/el $

локальная переменная LOL исчезла.

повысить локальную переменную до переменной окружения:

el@server /home/el $ DOGE="such variable"
el@server /home/el $ export DOGE
el@server /home/el $ set | grep DOGE
DOGE='such variable'
el@server /home/el $ env | grep DOGE
DOGE=such variable

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

экспортированная переменная DOGE выше переживает сброс Bash:

el@server /home/el $ exec bash
el@server /home/el $ env | grep DOGE
DOGE=such variable
el@server /home/el $ set | grep DOGE
DOGE='such variable'

снять все переменные окружения:

вы должны вытащить банку Чака Норриса, чтобы сбросить все переменные среды без выхода / входа в систему:

el@server /home/el $ export CAN="chuck norris"
el@server /home/el $ env | grep CAN
CAN=chuck norris
el@server /home/el $ set | grep CAN
CAN='chuck norris'
el@server /home/el $ env -i bash
el@server /home/el $ set | grep CAN
el@server /home/el $ env | grep CAN

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

или вы можете установить и отключить среду переменная вручную, как это:

el@server /home/el $ export FOO="bar"
el@server /home/el $ env | grep FOO
FOO=bar
el@server /home/el $ unset FOO
el@server /home/el $ env | grep FOO
el@server /home/el $

VAR=value устанавливает значение VAR.

после этого export VAR даст его дочерним процессам тоже.

export VAR=value это сокращение делаю.

Я думаю, что вы ищете export - хотя я могу ошибаться.. Я никогда раньше не играл с tcsh. Используйте следующий синтаксис:

export VARIABLE=value