【发布时间】:2019-11-27 15:33:28
【问题描述】:
在ant 中,如何添加到PATH 而不破坏/usr/bin 中的内容?我正在直接从 Apache ant 文档中工作,以应用到 PATH https://ant.apache.org/manual/Tasks/exec.html(示例部分)。
文档参考searchpath,描述如下:
searchpath:当该属性为true时,解析可执行文件位置时会搜索系统路径环境变量。从 Ant 1.6.3 开始
...但searchpath 似乎也无法解决这个特殊问题。
以build.xml为例:
<project name="Sample" default="init" basedir=".">
<description>Testing PATH with exec</description>
<target name="init">
<exec executable="./test.sh">
<env key="PATH" value="${env.PATH}:/foo"/>
</exec>
</target>
</project>
还有下面的shell脚本test.sh:
#!/bin/bash
echo "Hello!" # This works
uname # If PATH is edited, shows "uname: command not found"
输出:
init:
[exec] Hello!
[exec] ./test.sh: line 3: uname: command not found
[exec] Result: 127
...但是,如果我注释掉<env key="PATH" value="${env.PATH}:/foo"/>,它就可以正常工作。如何在不破坏内容的情况下添加到 PATH?
我正在 MacOS 10.14.5“Mojave”上使用 AdoptOpenJDK 11.0.3 和 Apache Ant 1.10.6 进行测试。
【问题讨论】: