如何在UNIX中创建一个新的环境变量....?

时间:2010-06-14 06:48:31

标签: unix environment-variables

如何在unix中创建一个新的环境变量并在程序中使用它?

3 个答案:

答案 0 :(得分:12)

你可以通过ps -o comm= -p $$告诉你正在运行的shell - 我认为这或多或少是普遍的。所以,在bash和某些类似的shell中......

如果要为一个特定的运行创建变量,可以执行

MYVAR=value the_command_that_needs_myvar

如果你想为整个shell会话创建它(即直到你注销):

export MYVAR=value

...然后你可以运行:

the_command_that_needs_myvar

...在该会话期间,您可以多次使用,并且MYVAR仍然会看到值为value

如果您希望自己设置,则对于所有登录会话,请将其放入~/.profile

请注意,bash的初始化文件可能是一个伟大的WTF。取决于它是以交互方式,通过网络方式,本地方式运行,还是根据是以sh还是bash调用AND,它将有选择地读取~/.bashrc,{{1 }和~/.profile。有关详细信息,请阅读~/.bash_profile手册页的FILES部分。

如果您希望为每个用户设置它,每次登录时都将其放在文件bash中(尽管还有/etc/profile,我不确定它是如何广泛使用的)。

查看问题"How to set environment variable for everyone under my linux system?"以获取更多详细信息。

(请注意,根据您或其他用户是否使用bash,dash,csh,ksh等,这些建议会有所不同......但它应该适用于大多数用例。)

答案 1 :(得分:6)

取决于shell。在bash中,您可以使用:

export myvar=xyz

将设置变量并使其可供其他程序使用。

如果要将其设置为一个调用程序,可以使用:

myvar=xyz ./myprog

这将为myprog进程设置,但不会在退出后设置。

答案 2 :(得分:1)

参见setenv(3)和getenv(3)函数。