2016-11-11 81 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