Questions tagged «environment-variables»

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

1
Windows PATH变量中列出的目录的顺序是否会以任何有意义的方式影响系统性能?
我注意到当程序将它们的目录添加到PATH环境变量时,大多数将它追加到最后,但是一些在Windows目录之前的开头添加它。所以它让我想知道,以某种方式做到这一点有什么明显的性能影响吗? 我的直觉是,大多数PATH查找都是针对系统可执行文件的,如果每个PATH查找都按顺序检查每个目录,那么预先设置系统目录可能会有一点好处,但我不知道微软是否比这更聪明或者,如果可能只是这么小的差异,它可以忽略不计。

2
我可以删除(显然)我的两个Windows PATH变量之间的冗余元素吗?
出于某种原因 - 我不确定这是否是Windows上的标准 - 我在Windows系统设置环境变量下有2个PATH变量。 我可以从其中一个中删除另一个已经存在的东西吗?他们之间是否存在一些差异,以证明在两个地方都保留一切? 更新:我对笔记本电脑具有管理权限(即使它是公司机器),也没有其他用户。



2
Windows XP环境变量
我认为我的环境变量中的PATH不能正常工作,并且想问一些关于环境变量的问题。 用户变量和系统变量之间有什么区别?什么时候应该使用一个?如果您为用户和系统提供相同的变量,该怎么办?没关系,因为系统变量包含所有用户? 我正在尝试使用快捷方式使我的PATH更清洁。例如,我设置了我的 JAVA_HOME 至 C:\Program Files\Java\jdk1.6.0_25\bin 然后 PATH 至 %JAVA_HOME%\bin。但是,当我输入时 "echo %PATH%" 在cmd中,它仍然显示 %JAVA_HOME%\bin。我应该担心事实并非如此 "C:\Program Files\Java\jdk1.6.0_25\bin"? 如果我想检查我的路径中是否存在xml,我该如何验证? 由于某些程序不喜欢环境变量中的空格,因此建议使用C:\ Progra~1 \而不是C:\ Program Files \,如下所示: http://ist.berkeley.edu/as-ag/technology/howto/install-java-sdk-win.html 这样做的程序是什么?我从哪里开始休息并添加~1。总是1吗? 谢谢!

1
设置JAVA_HOME环境变量
我已经在我的mac上设置java_home了 export JAVA_HOME=/System/Library/Frameworks/JavaVM.frameworks/Home 对我的 ~/.profile file。我退出终端再次运行它。 但是当我打字的时候 echo $JAVA_HOME 并按下 输入 表明 JAVA_HOME=/System/Library/Frameworks/JavaVM.frameworks/Version/1.6.0_22/Home 这不是正确的。我该如何解决这个问题&改变这个?


3
高架cmd.exe进程的环境变量来自何处?
根据命令提示会话的权限级别,SET命令显示的环境变量可能会有显着差异。此外,似乎任何由同一用户使用管理凭据运行的程序都可以创建在该进程结束后很长时间内持久存在的环境变量,并且将在该用户启动的任何后续提升进程中设置(并且仅在那些提升的进程中)。对于与用户登录会话关联的任何进程,我无法在Process Explorer显示的Environment选项卡中找到这些变量。我的问题是:这些值存储在哪里,以及为什么Process Explorer无法访问它们(当然,因为Process Explorer默认运行升级,这些变量出现在它自己的Environment选项卡中)?或者我只是忽略了它们?

3
bash:变量名未通过Tab完成展开
在具有bash版本“3.2.51(1)-release”(操作系统:SUSE Linux Enterprise Server 11.1(x86_64))的远程计算机上,我无法使用变量名执行常规选项卡。例如,我想键入: echo $OLDPWD/ 然后在斜杠的末尾,我可以点击“Tab”,变量名称将扩展为旧的目录名称(在最后一个cd或pushd命令之前)。这适用于我自己的笔记本电脑(Debian 7,Bash 4.2.37(1)-release)。为什么在这个SLES bash shell中它不起作用? 同样,如果我输入 echo $OLDP 然后在“P”的末尾点击“Tab”,bash会完成它$OLDPWD。这也不会发生在SLES 11 bash中。 哪些控制变量(shopt?set?)会影响这种行为?

1
无法使用launchctl setenv更改SSH_AUTH_SOCK
我想SSH_AUTH_SOCK在OSX El Capitan系统上将值设置为不同的位置。我尝试通过执行以下命令来执行此操作: $ launchctl setenv SSH_AUTH_SOCK ~/.gnupg/S.gpg-agent.ssh 但是,SSH_AUTH_SOCK即使重新启动终端后仍然保持默认值: $ echo $SSH_AUTH_SOCK /private/tmp/com.apple.launchd.XXXXXXXXXX/Listeners 但有趣的是,当我查询的值SSH_AUTH_SOCK使用launchctl,我得到了想要的结果: $ launchctl getenv SSH_AUTH_SOCK /Users/sora/.gnupg/S.gpg-agent.ssh 如何正确设置SSH_AUTH_SOCK系统范围的值? 编辑:SSH_AUTH_SOCK没有任何shell启动文件的设置(例如~/.zshrc,/etc/zshrc,/etc/zprofile)

1
将du(磁盘使用情况)结果传递给数字变量
在shell脚本中,我正在寻找一种方法将du(磁盘使用)结果传递给数字变量,这样我就可以将shell脚本的执行量调整到特定文件夹的大小。我尝试过像size = $(du -sh / folder)之类的东西,但这会将字母数字值传递给变量'size',再加上文件夹的名称,这显然不是我想要的。 我正在使用OSX,但我相信这更像是一个bash / linux问题。有人知道如何实现这一目标吗?非常感谢你。


0
如何为作为非登录用户运行的服务设置PATH变量?
我使用Nginx作为Web服务器在Linux机器上运行GitLab服务器。几个进程(作为root手动启动/etc/init.d/foo start或作为子进程自动启动)作为不同的用户运行: nginx为www-user postgres作为postgres redis-server as redis unicorn-rails和sidekiq作为git 用户git配置为no-login,我通常sudo -u git -H foo用来做用户git的东西。用户已在本地路径中安装了可执行文件(node.js)。要使用它,我需要改变我的sudo sudo -u git -H env "PATH=/home/git/local/bin/:$PATH" foo。我也将它添加到用户git的.bashrc文件中,但我想这是永远不会执行的,因为禁止shell登录。 由于我遇到GitLab服务器问题,我怀疑该服务没有正确设置PATH变量,并且无法在本地路径中找到node.js. 我的问题: 如何为非登录用户设置PATH等环境变量,以便以该用户身份运行的服务(由root用户启动/etc/init.d/foo start或在启动时启动)可以访问它? 奖金问题: 哪个进程/用户需要访问Javascript引擎?Nginx的/ WWW用户?还是Rails(Unicorn)/ git?


1
Windows - 如何在系统路径中使用用户定义的环境变量
正如问题所述,我在Windows 8.1的用户环境中定义了一些变量。现在我想要这样的东西作为一条路径: C:\Program Files (x86)\Intel\iCLS Client\;%USER_V1%;C:\Program Files\Intel\iCLS Client\;%USER_V2%;... 哪里 USER_V[1, 2] 引用一些用户定义的变量 我想要的原因是,如果我修改用户变量(比如更改它们的值),则更改会反映在路径变量中;而且我不必手动修改路径变量(我很懒) 我不确定这是否可行,但也许有人可以提供解决方案。 谢谢,

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.