Установка переменных среды в 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 $1 > $2
Что 9X_shell-scripting эквивалентно функции tcsh setenv
в Bash?
А есть прямой 9X_shell-command аналог? Переменные среды предназначены для 9X_unix поиска исполняемого файла.
Ответ #1
Ответ на вопрос: Установка переменных среды в Linux с помощью Bash
export VAR=value
установит VAR в значение. Если вам нужны 9X_shell пробелы, заключите его в одинарные кавычки, например 9X_bash-function export VAR='my val'
. Если вы хотите, чтобы переменная была 9X_bash-function интерполирована, используйте двойные кавычки, например 9X_shell-command export VAR="$MY_OTHER_VAR"
.
- PS: в последних двойных кавычках нет необходимости. Оболочка не выполняет разделение слов для присвоения пе ...
Ответ #2
Ответ на вопрос: Установка переменных среды в Linux с помощью Bash
Причина, по которой люди часто предлагают 9X_bash-script писать
VAR=value export VAR
вместо более короткого
export VAR=value
заключается 9X_bash в том, что более длинная форма работает 9X_unix-utils в большем количестве различных оболочек, чем 9X_.bash-profile короткая. Если вы знаете, что имеете дело 9X_shellscript с bash
, конечно, любой из них работает нормально.
Ответ #3
Ответ на вопрос: Установка переменных среды в Linux с помощью 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 $
Проверка работоспособности, без локальной 9X_bash-function переменной или переменной среды с именем 9X_shell-script LOL.
Установите локальную переменную LOL в локальную, но не в среду. Так что установите:
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 существует в локальных 9X_shell-script переменных, но не в переменных среды. LOL 9X_unix исчезнет, если вы перезапустите терминал, выйдете 9X_shell-command из системы / войдете в систему или запустите 9X_shell-scripting 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
Обратите 9X_shell-script внимание, что при экспорте он отображается 9X_bash как локальная переменная, так и как переменная 9X_bash-script среды.
Экспортированная переменная DOGE, указанная 9X_shell выше, переживает сброс 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'
Отменить все переменные среды:
Вы должны вытащить 9X_bash банку с Чаком Норрисом, чтобы сбросить все 9X_shell-scripting переменные среды без выхода / входа в систему:
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
Вы 9X_shell-command создали переменную среды, а затем сбросили 9X_shell-command терминал, чтобы избавиться от них.
Или вы можете установить и отключить переменную среды вручную следующим образом:
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 $
Ответ #4
Ответ на вопрос: Установка переменных среды в Linux с помощью Bash
VAR=value
устанавливает для VAR значение.
После этого 9X_bash-function export VAR
также передаст его дочерним процессам.
export VAR=value
- это 9X_shellscript сокращение, выполняющее и то и другое.
- разве это не передает это родительским процессам, а не дочерним? ...
Ответ #5
Ответ на вопрос: Установка переменных среды в Linux с помощью Bash
Думаю, вы ищете export
- хотя я могу ошибаться 9X_bash-function ... Я никогда раньше не играл с tcsh. Используйте 9X_.bash-profile следующий синтаксис:
export VARIABLE=value
-
18
-
11
-
7
-
9
-
2
-
20
-
7
-
5
-
4
-
3
-
10
-
5
-
7
-
3
-
5
-
13
-
9
-
10
-
9
-
8
-
10
-
1
-
7
-
6
-
4
-
8
-
9
-
3
-
2
-
3
-
4
-
5
-
5
-
1
-
4
-
5
-
1
-
4
-
9
-
2
-
6
-
3
-
5
-
5
-
2
-
1
-
4
-
3
-
3
-
6