1

我有一个简单的 java 程序,它只打印传递的参数

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

我正在从这样的 shell 脚本调用这个 javasetupTest.sh程序 java CmdArgsTest $*

当我setupTest.sh用这些参数调用时,*会被目录中的所有文件名替换。

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

即使我逃脱*了,\但论点通过了,\*而且并不*孤单。我也尝试过加上*引号,但这没有帮助。

我无法运行脚本,java CmdArgsTest "$*"因为所有命令都传递了一个大字符串。

任何帮助将不胜感激。

谢谢, 索拉布

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 回答