如何添加环境变量?

我正在运行Ubuntu11.04。 我使用终端启动bash会话,我想添加一个环境变量:

$r@hajt:~$ env THEVAR=/example

但它不起作用。 它显示了所有的变量与THEVAR是最后一个,但另一个调用 env 不显示 THEVAR 又来了- env | grep THEVAR 什么也不返回。

同样,带有导出的脚本(export THEVAR=/example)或其他变量赋值(THEVAR=/example)不要添加环境变量。

我知道我做错了什么,我知道它应该是简单的东西,但我只是找不到什么。

更新:我的问题的真正含义是这一个: https://stackoverflow.com/questions/496702/can-a-shell-script-set-environment-variables-of-the-calling-shell

(无论如何,我会选择投票最多的答案并留下编辑过的标题-这不是我要问的)

env 在修改后的环境中运行程序,然后取消所有更改。

设置变量 只有 对于当前壳:

VARNAME="my value"

要将其设置为当前shell和 所有工序 从当前shell启动:

export VARNAME="my value"      # shorter, less portable version

来设置它 永久 对于所有未来的bash会话添加这样的行到您的 .bashrc 在你的 $HOME 目录。

永久地设置它,以及 系统范围 (所有用户,所有进程)在/etc/environment中添加set变量:

sudo -H gedit /etc/environment

此文件只接受变量赋值,如:

VARNAME="my value"

不要使用 export 关键字在这里。

您需要从当前用户注销并重新登录,以便环境变量发生更改。

要设置一次环境变量,请使用 export 命令在提示符中,而不是在shell脚本中:

$ export THEVAR=/example

该变量将被设置为shell会话的其余部分或直到取消设置。

要每次设置环境变量,请使用 export 命令在 .bashrc 文件(或您的shell的适当初始化文件)。

要从脚本设置环境变量,请使用 export 脚本中的命令,然后 source 的脚本。 如果您执行脚本,它将不起作用。

有关sourcing和execution之间差异的解释,请参阅此答案: https://superuser.com/questions/176783/what-is-the-difference-between-executing-a-bash-script-and-sourcing-a-bash-script/176788#176788

要在Ubuntu中永久添加新的环境变量(仅在14.04中测试),请使用以下步骤:

  1. 打开终端(按 CtrlAltT)
  2. sudo -H gedit /etc/environment
  3. 输入您的密码
  4. 编辑刚刚打开的文本文件:
    例如,如果你想添加 FOO=bar,然后就写 FOO=bar 在新行中
  5. 省省吧
  6. 保存后,注销并重新登录。
  7. 您所需的更改已进行。

要在脚本完成后保留环境/var更改,您必须使用source ./script.sh 或源的简写符号,"。",像 . ./script.sh

Source将执行脚本中的命令,就像您键入它们一样。.. 所以它确实改变了脚本的某些方面,例如退出。.. 因此,如果您的脚本检查某些内容并决定退出(如果为false),例如,通过调用 exit 0,它将终止您当前的终端/shell会话。

我知道这已经很晚了,但是如果你想为所有用户添加一个环境变量(例如JAVA用法)-你可以做到以下几点:

1)打开 /etc/bash.bashrc 使用nano(你可以使用任何编辑器,我不喜欢VIM,因为它在用户友好性方面是最糟糕的-没有什么个人的)。

2)追加到文件:

export VAR=path export PATH=$PATH:/bin3)(如果你可以弹框更好)-或者简单地打开一个新的SSH会话并使用`env'命令确认。

但是,如果您希望每个用户都有一个单独的设置,则必须对其进行更改(脚本化) .bashrc 文件下 ~/.bashrc (或 /home/$USER/ 如果你是Linux系统的新手)

如果您是通过脚本执行操作,那么永久设置环境变量的一种简单方法是在脚本中的语句下面,

if [[ ! -d "$MyVar" ]]; then     export MyVar="abc"    echo 'export MyVar="abc"' >> ~/.bashrcfi

如果您需要评估像pwd这样的表达式,您可以使用它,例如,

echo "export EIGEN_ROOT=\"$(pwd)/eigen\"" >> ~/.bashrc

如果您使用的是Ubuntu或任何基于Unix的系统,那么将变量导出到 ~/.bashrc 档案。 这是一个隐藏文件,您可以通过终端或通过取消隐藏文件系统中的隐藏文件到达那里。

然后编辑文件并设置 export THEVAR=/example 在那里,保存和它的完成。

如果您正在使用TOMCAT部署JAVA aplication,则可以通过以下方式设置环境变量:

1.sudo su和cd到/var/lib/tomcat8/bin/(或您的tomcat bin路径)

  1. 触摸setenv.sh(如果它不存在),如果文件存在已经做'vi setenv.sh'

  2. chmod777setenv.sh (使文件可执行)

  3. 六setenv.sh 并在setenv中设置以下行。shexport键=值

  4. sudo systemctl重启tomcat。服务

在java文件中,您可以使用以下代码检查变量是否已设置

private static void printEnv() {    System.out.println("******************************Environment Vars*****************************");    Map<String, String> enviorntmentVars = System.getenv();    enviorntmentVars.entrySet().forEach(System.out::println);    System.out.println("******************************system Vars*****************************");    Properties enviorntmentProperties = System.getProperties();    enviorntmentVars.entrySet().forEach(System.out::println);}

另一个是关于全局变量,这个没有添加这样的限制。 我会把它分开的。

https://help.ubuntu.com/community/EnvironmentVariables

定义/导出时。bashrc,它工作正常。

'THEVAR=/example’怎么样?

可能重复的[Google地球和$浏览器环境变量](Google Earth and $BROWSER environment variable - Ask Ubuntu