如何为bash命令设置多个环境变量


108

我应该在运行命令之前设置EC2_HOME和JAVA_HOME变量(ec2-describe-regions)

我要怎么做呢?

Answers:


164

您可以通过将单个变量放在命令前的命令行上来一次性设置变量:

$ EC2_HOME=/path/to/dir JAVA_HOME=/other/path ec2-describe-regions

或者,您可以在环境中导出它们,在这种情况下,将为以后的所有命令设置它们:

$ export EC2_HOME=/path/to/dir
$ export JAVA_HOME=/other/path
$ ec2-describe-regions

7
请注意,尽管看起来并不常见,但是您也可以编写export EC2_HOME=/path JAVA_HOME=/path
William Pursell '16

4
一次性选项在脚本中非常有用。只是注意的人谁需要执行命令为root或其他用户,该变量应该来须藤或用户。例如sudo -u somebody CVSROOT=:ext:somebody@12.18.127.22:/usr/local/ncvs CVS_RSH=ssh cvs co my/dir/ancient-file.py
Nagev '17

通过前置可以提供的变量数量是否有限制?
山姆·托马斯

只是最大命令行长度限制,这在Linux上非常大。
克里斯·多德

2

与其他* nix系统一样,可以在.bashrc文件中的HOME目录下添加以下功能。

function startec2(){
    EC2_HOME=/path/to/dir
    JAVA_HOME=/other/path 
    ec2-describe-regions
}

现在,您可以通过以下命令启动程序:

startec2

4
据我所知,这只会创建bash变量,不会起作用。
TNW
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.