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

use*_*688 8 unix environment-variables

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

det*_*tly 12

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

如果要为特定运行创建变量,则可以执行此操作

MYVAR=value the_command_that_needs_myvar
Run Code Online (Sandbox Code Playgroud)

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

export MYVAR=value
Run Code Online (Sandbox Code Playgroud)

...然后你可以运行:

the_command_that_needs_myvar
Run Code Online (Sandbox Code Playgroud)

......在那次会议期间,你喜欢多次,它仍然会看到MYVAR有价值value.

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

请注意,bash的初始化文件可能是一个伟大的WTF.根据是否是交互式运行,在网络上,在当地,并根据其是否被援引为sh或者bash,它会选择性阅读的某种组合~/.bashrc,~/.profile~/.bash_profile.bash有关详细信息,请阅读手册页的FILES部分.

如果你想为每个用户设置它,每次他们登录时,都要把它放在文件中/etc/profile(虽然也有/etc/environment,但我不确定它有多广泛使用.).

看看问题"如何为我的linux系统下的每个人设置环境变量?" 还有更多细节.

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


pax*_*blo 6

取决于外壳.在bash,您可以使用:

export myvar=xyz
Run Code Online (Sandbox Code Playgroud)

这将设置变量并使其可用于其他程序.

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

myvar=xyz ./myprog
Run Code Online (Sandbox Code Playgroud)

这将为myprog流程设置,但不会在退出后设置.