Установка переменных среды в 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 поиска исполняемого файла.

82
0
5
Общее количество ответов: 5

Ответ #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".

118
1

  • 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, конечно, любой из них работает нормально.

39
0

Ответ #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 $ 
29
0

Ответ #4

Ответ на вопрос: Установка переменных среды в Linux с помощью Bash

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

После этого 9X_bash-function export VAR также передаст его дочерним процессам.

export VAR=value - это 9X_shellscript сокращение, выполняющее и то и другое.

11
3

  • разве это не передает это родительским процессам, а не дочерним? ...

Ответ #5

Ответ на вопрос: Установка переменных среды в Linux с помощью Bash

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

export VARIABLE=value 

8
0