2016-11-11 4 views
0

を文字列を渡す:私はシェルスクリプトへの入力として、以下の文字列を渡したいのantスクリプトに

ant -f build.xml run -class_name="new_class" -arguments ="-n name -w default -print -o $1.txt" 

私は以下のようにシェルスクリプトを書きました:

#!/bin/bash 
"$1" 

入力:text.sh " ant -f build.xml run -class_name="new_class" -arguments ="-n name -w default -print -o $1.txt"

出力:

antコマンドn ot found

また、シェルスクリプトに環境変数も含めました。 しかし、私のantスクリプトは、私のシェルスクリプトに入力されていません。

+0

saranyaaですが、複数の文字列をシェルスクリプトの引数の1つとして考えていますか?正確に何を達成しようとしているのかという質問を編集して、少しだけ文脈を与えることができますか? – Rao

+0

'which ant'のコマンドの結果は何ですか? 'echo $ CLASSPATH' – Rao

+0

こんにちは。自分の環境変数を読み込むためにローカルファイルを含めました。 – saranyaa

答えて

0

実際にが投稿されたスクリプトを正確に呼び出すと、* ant -f build.xml ..... *というエラーメッセージが表示されるはずです。

第2に、呼び出し側での引用は無効ではないが、奇妙である。引用符付きの文字列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

こんにちは、私はちょうどシェルスクリプトへの入力としてantスクリプトを渡す方法を教えてください。私は、antスクリプトにスペースとスペースがあるので、どのように混乱しているのでしょうか? – saranyaa

+0

単に私が./text.shへの入力として私のantスクリプトを渡すとき、私はエラー "no such file or directory"を得ます。 – saranyaa

+0

私はこの質問をよく理解していません。私は本当にantスクリプト**(XMLテキスト)をシェルスクリプトに渡したいとは思っていませんが、antスクリプトのファイル名だけをシェルスクリプトに渡したいのですか完全な 'ant'コマンド(パラメータを含む)をシェルスクリプトに渡したいと思っていますか?後者の場合は、クォートすることに注意しなければなりません(または、プログラマーフレンドリーな引用規則を持つbashではなくZshを使用する必要があります)。 – user1934428

関連する問題