我在运行蚂蚁时遇到了一些麻烦。这是我的问题的简化版本。我有一个 shell 脚本 script1.sh:
export ANT_HOME=/opt/Ant
ant -version
这行得通。但是当我尝试创建另一个脚本 script2 时:
cd /location/of/script1
sudo -E ./script1.sh | tee log.txt
我收到错误ant: command not found.
有谁知道为什么会这样。
我在运行蚂蚁时遇到了一些麻烦。这是我的问题的简化版本。我有一个 shell 脚本 script1.sh:
export ANT_HOME=/opt/Ant
ant -version
这行得通。但是当我尝试创建另一个脚本 script2 时:
cd /location/of/script1
sudo -E ./script1.sh | tee log.txt
我收到错误ant: command not found.
有谁知道为什么会这样。
听起来你在PATH
之后失去了你的设置sudo
。尝试添加echo $PATH
以script1.sh
查看之前和之后的值。或者只是定义script1.sh
为
export ANT_HOME=/opt/Ant
${ANT_HOME}/ant -version
在不知道什么 shell 或查看更多脚本的情况下,很难准确判断发生了什么。但是,如果您希望 script2 了解 ANT_HOME,您可能需要source
或eval
script1。见这里。我也知道管道'|' 导致 Bash 在子 shell 中执行操作,这在某些情况下可能会出现问题(如果您使用的是 Bash)。
编辑:仔细检查您使用的是您认为自己的 ant 版本:
#!/bin/bash
# Capital A here seems suspicious to me...
export ANT_HOME=/opt/Ant
echo "`${ANT_HOME}/ant -version`"