Questions tagged «environment-variables»

环境变量是共享相同值的系统范围变量。这些变量通常在执行命令时由外壳程序解析,并扩展为它们的适当变量。例如,这允许用户移动文件位置,而无需更新脚本中的硬编码路径(他们只需要更新环境变量)即可。

2
BASH的$ PROMPT_COMMAND的ZSH等价于什么?
BASH支持$PROMPT_COMMAND环境变量,该变量定义在任何第一级交互式提示之前要执行的命令。我正在寻找与之等效的ZSH。 文档说,有一个precmd我可以定义的功能可以实现。但是,我不知道如何从环境变量中定义它。 我曾经考虑过传递一个环境变量,该变量将使ZSH读取包含该函数定义的文件,但是ZSH 似乎不支持这种情况:它仅读取全局文件,然后读取每个用户的文件。我可以替换它们,但不能在不修改文件的情况下添加它们,这是我不能做的。 那么,如何像我$PROMPT_COMMAND在BASH中使用的那样,通过环境变量在ZSH中定义预提示挂钩?

3
在服务器环境变量中存储关键密码是否安全?
我有一簇服务器,每个服务器都有配置文件,这些文件当前包含用于敏感的关键任务系统(消息队列,数据存储和其他服务)的纯文本密码。 某些人将关键密码从配置文件中移到运行服务器进程的用户帐户的环境变量中。通过这种方式,可以将配置文件提交给版本控制,并且系统管理员只需要在设置服务器系统时创建适当的环境变量。自然,对运行这些服务的帐户的访问非常受限制。 这真的是避免在纯文本配置文件中输入密码的最佳方法,还是有更好的方法?



1
Windows 7-用户特定的%PATH%
我想为Windows 7建立一个系统,其中每个用户在%PATH%中都有自己的私有目录。我尝试将%PATH%设置为,%HOMEDRIVE%%HOMEPATH%\Bin;%SystemRoot%\System32;[...]但似乎不起作用。 对于那些没有意识到我要做什么的人,这有点像EXPORT PATH=~/bin在* nix上。如果需要,它可以基于用户特定(并且实际上更喜欢计算机范围的设置)。


7
为什么我的Windows 8命令行不更新其路径
我需要在PATH变量中添加一个新条目。这是我工作中的常见活动,但是最近我开始使用Windows8。我认为该过程类似于Windows 7,Vista,XP ... 这是我的事件顺序: 打开系统属性(开始-> [类型“控制面板”]->控制面板\系统和安全性\系统->高级系统设置->环境变量) 将新路径添加到我的USER PATH变量的开头(C:\ dev \ Java \ apache-ant-1.8.4 \ bin;) 打开命令提示符(开始-> [键入“命令提示符”输入]-> [键入“路径”输入] 我的新路径条目不可用(请参阅所附图像和视频)。我在Windows 7机器上复制了完全相同的过程,并且可以正常工作。 编辑 Windows 8环境变量和命令提示符视频 编辑 这绝对不是Windows 7的行为。观看此视频,以查看我期望在Windows 7中运行的行为。http://youtu.be/95JXY5X0fII 编辑5/31/2013 因此,经过无奈之后,我编写了一个小型C#应用程序来测试WM_SETTINGCHANGE事件。这段代码在Windows 7和Windows 8中都接收到该事件。但是,我在Windows 7中使用。在其他Windows 8系统中无法复制。 这是C#代码。 using System; using Microsoft.Win32; public sealed class App { static void Main() { SystemEvents.UserPreferenceChanging += new …

1
Linux上的HOSTNAME环境变量
在我的Linux机器上(具体来说是Gentoo Linux 2.6.31),我注意到HOSTNAME环境变量在我的Shell中可用,但在脚本中不可用。例如, $ echo $HOSTNAME 退货 xxxxxxxx.com, 但 $ ruby -e 'puts ENV["HOSTNAME"]' 退货 nil 另一方面,例如,USER环境变量在外壳程序和脚本中均可用。 我注意到USER出现在我键入时出现的环境变量列表中 export 即 declare -x USER="infogrind" 但HOSTNAME却没有。我怀疑这个问题与此有关。 我的问题:1)如何使HOSTNAME在脚本中可用,以及2)为了更好地理解,此变量最初设置在哪里,为什么不“导出”?

4
更新屏幕会话环境变量以反映新的图形登录?
我使用linux,并且我希望在一个屏幕会话中完成所有命令行工作,以便可以重新启动图形登录等而不会丢失终端。但是,当我注销并返回图形会话时,这会更改所有会话环境变量,例如DBus会话。这意味着,再次登录后,我的屏幕会话现在具有旧的(和错误的)环境变量。因此,现在当我尝试从屏幕会话中启动图形程序时,充其量它们会发出有关无法连接到会话总线的警告。最糟糕的是,它们无法完全启动。 因此,我正在寻找一种在正在运行的屏幕实例中修改环境变量的方法,以便所有随后创建的屏幕窗口都将继承新的环境变量。有没有办法做到这一点?

3
如何从鱼的$ PATH变量中删除路径?
我在Debian中将fish用作shell,最近(在进行一些升级之后)每当尝试使用命令完成时,我都有: set: No such file or directory set: Could not add component /usr/lib/x86_64-linux-gnu/libfm to PATH. set: No such file or directory 运行此: echo $PATH 给我这个: /usr/lib/x86_64-linux-gnu/libfm /usr/local/bin /usr/bin /bin /usr/local/games /usr/games 在我的系统中没有/usr/lib/x86_64-linux-gnu/libfm,因此我了解了fish为何抱怨,但是我找不到如何从$PATH变量中删除此路径的方法。 有人知道我该怎么做吗?

2
环境变量中的TEMP vs TMP
这两个环境变量TEMP和TMP是否正确?如果我对一个进行更改,是否应该对另一个进行相同的更改?例如,我正在安装cygwin,并且说明告诉我更改PATH变量,但是TEMP和TMP都具有path变量。两者有什么区别? 不知道为什么人们希望看到它,但这是路径的值:TEMP中的路径:C:\ Program Files \ Common Files \ Microsoft Shared \ Windows Live; C:\ Program Files(x86)\ Common Files \ Microsoft Shared \ Windows Live; C:\ Program Files(x86)\ NVIDIA Corporation \ PhysX \ Common;%SystemRoot%\ system32;%SystemRoot%;%SystemRoot%\ System32 \ Wbem;%SYSTEMROOT%\ System32 \ WindowsPowerShell \ v1.0 \; C:\ Program Files(x86)\ Common Files \ Acronis …

2
用户与系统环境变量:系统变量是否覆盖用户变量?
我拥有笔记本电脑的升级权限,但没有管理员权限。需要管理员权限才能修改系统环境变量。我希望如果创建的用户环境变量的名称与系统环境变量的名称相同,则该用户变量将覆盖系统变量,但事实并非如此。 添加与系统变量同名的用户变量后,我打开了一个全新的cmd窗口,并使用echo命令显示了该变量。它向我显示了系统变量的值,而不是用户变量的值。 我只是想确认这是预期的行为,并了解其背后的原因。我希望更具体的用户设置可以覆盖系统设置。 我有Windows 7。

1
如何在OS X Mavericks中为GUI应用设置环境变量?
我一直在努力让应用程序在OS X Mavericks中运行。通过钻入.app包并直接运行shell脚本,我终于能够使其运行。似乎需要设置JAVA_HOME。所以我在外壳的.profile中设置了它,一切正常。 但是,如果我只想单击扩展坞中的图标,它将无法运行。我的猜测是,这是因为未全局设置JAVA_HOME。由于我不是直接从外壳运行该应用程序,因此OS X不知道JAVA_HOME是什么。它一直在寻找。 在OS X的早期版本中,似乎可以通过将GUI应用程序简单地添加到/etc/launchd.conf中来设置环境变量。该文件似乎在Mavericks中不存在。如何设置适用于Mavericks中GUI应用程序的全局环境变量?

13
Windows命令行:创建名称为当前日期的文件
我正在尝试从批处理脚本创建一个zip文件。我需要将其命名为archive_.zip 不幸的是,由于斜杠,这在日期格式为y / m / d的系统上不起作用: zip some_options "archive_%DATE%.zip" 该%DATE%变量扩展到像 Mon 09/28/2009 我可以访问gnuwin32软件包,因此可以用sed破折号代替空格和斜杠。问题是,我将如何使用的输出sed来创建zip归档文件的文件名? 在Unix(bash)中,可以使用反引号来就地评估命令,并在另一条命令中使用其输出,例如: zip [...] archive_`echo %DATE% | sed -e s/.../.../`.zip Windows中有类似的功能吗? 也许有一种方法可以将变量设置为返回值,sed然后使用该变量来构造文件名?

3
什么是envsubst中的SHELL-FORMAT?
当我偶然发现时,envsubst我只想用它替换特定的变量,并怀疑可能需要使用SHELL-FORMAT参数,但我无法使其正常工作。 不幸的是,man和info页面没有给出任何用法示例,只说了 如果给出了SHELL-FORMAT,则仅替换SHELL-FORMAT中引用的那些环境变量 哪个没有告诉我如何引用它们。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.