如何设置一个bash脚本的全局环境变量?
如果我做的东西一样
#!/bin/bash
FOO=bar
...要么
#!/bin/bash
export FOO=bar
...的增值经销商似乎留在当地的情况,而我想利用他们的脚本执行完毕后保持。
如何设置一个bash脚本的全局环境变量?
如果我做的东西一样
#!/bin/bash
FOO=bar
...要么
#!/bin/bash
export FOO=bar
...的增值经销商似乎留在当地的情况,而我想利用他们的脚本执行完毕后保持。
运行你的脚本.
. myscript.sh
这将运行在当前shell环境的脚本。
export
支配哪些变量将提供给新工艺,所以如果你说
FOO=1
export BAR=2
./runScript.sh
然后$BAR
将在环境runScript.sh
,但$FOO
不会。
当你运行一个shell脚本,它在一个子壳的完成,因此它不能影响父shell的环境。 你想边做边源脚本:
. ./setfoo.sh
这执行它在当前程序的环境,而不是作为一个子壳。
从bash的手册页:
。 文件名[参数]
源文件名[参数]读取并在当前shell环境的文件名执行命令并返回从文件名最后执行的命令的退出状态。
如果文件名不包含斜杠,在路径文件名用于查找包含目录文件名。
搜索的文件在PATH不必是可执行的。 当bash是不是在POSIX模式下,如果没有文件在PATH中发现的当前目录搜索。
如果源路径选项shopt内建命令被关闭,路径不搜索。
如果任何参数被提供,则执行文件名时它们成为位置参数。
否则,位置参数不变。 返回状态是脚本中退出(0,如果没有执行命令)的最后一个命令的状态和错误如果文件名未找到或无法读取。
source myscript.sh
也是可行的。
为Linux命令描述source
:
source is a Unix command that evaluates the file following the command,
as a list of commands, executed in the current context
#!/bin/bash
export FOO=bar
要么
#!/bin/bash
FOO=bar
export FOO
男人的出口:
外壳应给予出口属性对应于指定的名称,并应使他们在随后执行的命令的环境变量。 如果一个变量的名称后面=字,则该变量的值应被设置成字。
FOO=bar
export FOO