我想将以下字符串作为输入传递给shell脚本:
ant -f build.xml run -class_name="new_class" -arguments ="-n name -w default -print -o $1.txt"
我写了一个shell脚本如下:
#!/bin/bash
"$1"
输入:text.sh " ant -f build.xml run -class_name="new_class" -arguments ="-n name -w default -print -o $1.txt"
输出:
未找到ant命令
我还将环境变量包含在shell脚本中。 但是我的ant脚本没有输入到我的shell脚本中。
答案 0 :(得分:0)
首先,如果你真的以你发布的确切方式调用你的脚本,你应该收到一条错误消息,说* ant -f build.xml ..... * not found。< / p>
其次,你在主叫方的引用虽然没有效,却是奇怪的。您有一个带引号的字符串ant -f build.xml run -class_name=
,紧接着是一个不带引号的字符串new_class
。这是什么目的?
如果您希望脚本完全按照给定的方式执行字符串,则只需执行
即可$1
而不是"$1"
,并将其称为
text.sh "ant -f build.xml run -class_name=new_class -arguments ='-n name -w default -print -o $1.txt'"
请注意在通话中使用引用。