2016-11-11 85 views
0

我想通过下面的字符串作为输入到shell脚本:传递字符串ant脚本

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 command n ot found

我还将环境变量包含在shell脚本中。 但我的蚂蚁脚本没有输入到我的shell脚本中。

+0

saranyaa,但你是否考虑多个字符串作为shell脚本的一个参数?通过编辑你想要达到什么的问题,可以给出更多的上下文吗? – Rao

+0

'哪个蚂蚁'的命令结果是什么? 'echo $ CLASSPATH' – Rao

+0

Hi Rao。我已经包含本地文件来读取我的环境变量。 – saranyaa

回答

0

首先,如果您真的以您发布的确切方式调用脚本,您应该会收到一条错误消息,说明* ant -f build.xml ..... *找不到。

其次,您在主叫方的引用是,虽然不是无效,但奇数。您有一个带引号的字符串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'" 

的使用注意事项中引用的电话。

+0

嗨,你可以告诉我如何通过一个蚂蚁脚本作为输入到shell脚本。我很困惑,因为蚂蚁脚本中有空格和“”。 – saranyaa

+0

只是当我通过我的蚂蚁脚本作为输入到./text.sh,即时通讯得到一个错误“没有这样的文件或目录” – saranyaa

+0

我不太明白这个问题。我不认为你真的想将一个ant **脚本**(即XML文本)传递给一个shell脚本,但是:你想仅将ant脚本的文件名传递给一个shell脚本,或者你想传递一个完整的'ant'命令(包括参数)到一个shell脚本中?在后一种情况下,你必须小心引用(或使用Zsh而不是bash,它具有更多程序员友好的引用规则)。 – user1934428