1

渡された引数を出力するだけの単純なJavaプログラムがあります

public class CmdArgsTest {
    public static void main(String[] args) {
        for(String arg : args){
            System.out.println(arg);    
        }
    }
}

setupTest.shこのような シェルスクリプトからこのJavaプログラムを呼び出していますjava CmdArgsTest $*

setupTest.shこれらの引数で呼び出すと*、ディレクトリ内のすべてのファイル名に置き換えられます。

setupTest.sh -tt oracle -tn test_ora -sqlQuery "select * from myTable"

と逃げ*ても\引数は渡されますが、一人では\*ありません*。私も引用符を入れようと*しましたが、それは役に立ちませんでした。

java CmdArgsTest "$*"すべてのコマンドに1つの大きな文字列が渡されるため、スクリプトを実行できません。

どんな助けでも大歓迎です。

ありがとう、サウラブ

4

1 に答える 1

0

$ドル記号( ) をエスケープしてみてください

java CmdArgsTest "\$*"

または一重引用符を使用する

java CmdArgsTest '$*'

同じことが他の呼び出しにも当てはまります。

setupTest.sh -tt oracle -tn test_ora -sqlQuery 'select * from myTable'
于 2012-04-16T10:59:24.067 に答える