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等,这些建议会有所不同......但它应适用于大多数用例.)
取决于外壳.在bash
,您可以使用:
export myvar=xyz
Run Code Online (Sandbox Code Playgroud)
这将设置变量并使其可用于其他程序.
如果要将其设置为一次调用程序,可以使用:
myvar=xyz ./myprog
Run Code Online (Sandbox Code Playgroud)
这将为myprog
流程设置,但不会在退出后设置.