我正在编写一个脚本来自动编译java项目,并使用ant进行编译。当我直接在bash shell中运行ant命令时,它可以正确地构建项目。但是,如果我从shell脚本运行完全相同的命令,我收到以下错误:
./build.sh: line 21: Apache: command not found
我的build.sh文件中的第21行是:
`ant clean build -v -buildfile $BUILDFILE`
其中$BUILDFILE=auto_build.xml
。
我还在.bashrc中添加了ant bin文件夹的路径
$ANT_HOME
的值为/usr/share/ant
ant -version
给了我Apache Ant(TM) version 1.9.3 compiled on April 8 2014
(如果添加到shell脚本,此命令也不起作用)
答案 0 :(得分:2)
我怀疑问题是由于命令周围的反引号造成的。尝试替换
`ant clean build -v -buildfile $BUILDFILE`
与
ant clean build -v -buildfile $BUILDFILE
反引号表明bash解释器应该自己执行ant
命令的输出作为命令。
请参阅https://unix.stackexchange.com/questions/27428/what-does-backquote-backtick-mean-in-bash。