如何在UNIX中创建新的环境变量。。。。?

如何在UNIX中创建新的环境变量。。。。?,unix,environment-variables,Unix,Environment Variables,如何在unix中创建新的环境变量并在程序中使用它取决于shell。在bash中,可以使用: export myvar=xyz myvar=xyz ./myprog 这将设置变量并使其可用于其他程序 如果要将其设置为一次程序调用,可以使用: export myvar=xyz myvar=xyz ./myprog 这将为myprog进程设置它,但不会在它退出后设置它。请参阅setenv(3)和getenv(3)函数。您可以通过ps-o comm=-p$$判断您正在运行的shell-我认为这或

如何在unix中创建新的环境变量并在程序中使用它取决于shell。在
bash
中,可以使用:

export myvar=xyz
myvar=xyz ./myprog
这将设置变量并使其可用于其他程序

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

export myvar=xyz
myvar=xyz ./myprog

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

请参阅setenv(3)和getenv(3)函数。

您可以通过
ps-o comm=-p$$
判断您正在运行的shell-我认为这或多或少是通用的。所以,在bash和某些类似的shell中

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

MYVAR=value the_command_that_needs_myvar
如果要为整个shell会话创建它(即直到您注销):

…然后您可以运行:

the_command_that_needs_myvar
…在该会话期间,您可以任意多次查看,它仍然会将
MYVAR
视为具有值
value

如果您想为自己设置,请将所有登录会话设置为
~/.profile

请注意,bash的初始化文件可以是一个非常大的WTF。根据它是否在本地通过网络以交互方式运行,以及它是否作为
sh
bash
调用,它将有选择地读取
~/.bashrc
~/.profile
~/.bash\u profile
的一些组合。有关详细信息,请阅读
bash
手册页的文件部分

如果您希望为每个用户设置它,每次他们登录时,将其放入文件
/etc/profile
(虽然也有
/etc/environment
,但我不确定它的使用范围有多广)

查看问题了解更多细节


(注意,这些建议中的一些会因您或其他用户是否使用bash、dash、csh、ksh等而有所不同,但它应该适用于大多数用例。)

正如Pax所说,这取决于shell。事实上,要确定是否使用/etc/environment、/etc/profile、~/.profile、~/.kshrc、~/.cshrc、~/.bash\u profile、~/.bash\u登录,~/.bashrc和所有其他的可能性都不是为胆小的人准备的:-)它让我想起了-当然是过去糟糕的日子里留下的垃圾。我添加了一些关于个人
bash
config文件的内容。