Как изменить переменную среды в Unix?

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

Я попробовал команду:

set[variable[=val]]

То, что это хорошо работало, но я не знаю, должен ли его правильный способ изменить или я использовать export команда с этой целью?

Мой код:

modify_env(){
echo "Environmental variable:"
read var
echo "Environmental value"
read value
set [var[=value]]
}
0
задан 8 March 2015 в 16:13

1 ответ

От help set:

set: Set or unset values of shell options and positional parameters.

Так для значений Вы входите с set, буквально становятся позиционными параметрами (аргументы) set, а не переменные среды.

$ set foo=bar 
$ echo "$foo" ##Prints nothing because it is not a variable

$ echo "$1"  ##Prints the first argument of the command "set foo=bar"
foo=bar

Теперь от help export:

export: Set export attribute for shell variables.

Это - то, что необходимо установить переменную всюду по среде, т.е. это значение будет распространено ко всем дочерним процессам также.

$ export foo=bar  ##setting environment variable foo having value "bar"
$ echo "$foo"  ##printing the value of "foo" in current shell
bar
$ bash -c "echo $foo" ##printing the value of "foo" in a subshell
bar

Так, вкратце необходимо использовать export встроенный при установке любой переменной среды.

0
ответ дан 3 August 2019 в 13:31

Другие вопросы по тегам:

Похожие вопросы: