有没有人写了一个 bash 函数来将一个目录添加到 $PATH 中,如果它不存在?
我通常使用以下内容添加到 PATH:
export PATH=/usr/local/mysql/bin:$PATH
Run Code Online (Sandbox Code Playgroud)
如果我在 .bash_profile 中构建我的 PATH,那么它不会被读取,除非我所在的会话是登录会话——这并不总是正确的。如果我在 .bashrc 中构建我的 PATH,那么它会与每个子 shell 一起运行。因此,如果我启动一个终端窗口,然后运行 screen 然后运行一个 shell 脚本,我会得到:
$ echo $PATH
/usr/local/mysql/bin:/usr/local/mysql/bin:/usr/local/mysql/bin:....
Run Code Online (Sandbox Code Playgroud)
我将尝试构建一个名为 bash 的函数add_to_path(),如果它不存在,它只会添加目录。但是,如果有人已经写过(或找到)这样的东西,我不会花时间在上面。
我需要做什么:
%PATH%在 SYSTEM 级别将文件夹附加到环境变量。我需要怎么做:
.BAT文件的方法。脚本需要处理的系统:
我对SET命令相当熟悉,但我也知道它通常会覆盖现有变量而不是附加到它。那是不能接受的。是否有另一个工具(或选项SET,我不知道)将附加到变量?或者,我是否需要在脚本中放置一个解决方法,包括将现有变量临时复制到另一个变量或文本文件?
另外,我的理解是SET不会永久改变变量。我已经看到提到SETX,但这似乎并没有内置到 Windows XP SP3 中(或者,至少,它似乎在我正在使用的系统上不可用)。是否有另一种方法可以通过注册表编辑或其他方式使更改永久化?
我已经环顾四周,并从这里学到了一些关于在 Windows 中设置环境变量的知识。但是,我还没有找到一个完全符合我需要的重复问题。如果有的话,请告诉我。
我有两个用户定义的变量:
ANT_HOME 设置为 %USERPROFILE%\Developer\Tools\Apache\Apache Ant\apache-ant-1.8.2 JAVA_HOME 设置为 C:\Program Files\Java\jdk1.6.0_23
我想将这些路径附加到 System 变量,以便我可以访问其 bin 文件夹中的可执行文件。我试过
PATH 设置为 [其他路径];%ANT_HOME%\bin;%JAVA_HOME%\bin
但是,这不起作用。当我打开命令提示符并 echo %PATH% 时,用户变量未扩展。所以路径只显示文字, ;%ANT_HOME%\bin;%JAVA_HOME%\bin
我似乎记得这在我的旧 Windows XP 系统上运行良好。如何在 Windows 7 上进行设置?