调用Java程序时在shell脚本中转义星号
我有一个简单的java程序,它只打印传递的参数调用Java程序时在shell脚本中转义星号,shell,escaping,wildcard,arguments,Shell,Escaping,Wildcard,Arguments,我有一个简单的java程序,它只打印传递的参数 public class CmdArgsTest { public static void main(String[] args) { for(String arg : args){ System.out.println(arg); } } } 我从shell脚本setupTest.sh调用这个java程序,如下所示 java CmdArgsTest$* 当我使用这些
public class CmdArgsTest {
public static void main(String[] args) {
for(String arg : args){
System.out.println(arg);
}
}
}
我从shell脚本setupTest.sh
调用这个java程序,如下所示
java CmdArgsTest$*
当我使用这些参数调用setupTest.sh
时,*
将被目录中的所有文件名替换
setupTest.sh -tt oracle -tn test_ora -sqlQuery "select * from myTable"
即使我用\
转义*
,但传递的参数是\*
,而不是*
。我也试过把*
放在引号里,但没有用
我无法以java CmdArgsTest“$*”
的形式运行脚本,因为所有命令都传递了一个大字符串
任何帮助都将不胜感激
谢谢,,
Saurabh尝试转义美元($
)符号
或者使用单引号
java CmdArgsTest '$*'
另一个调用也是如此:
setupTest.sh -tt oracle -tn test_ora -sqlQuery 'select * from myTable'
setupTest.sh -tt oracle -tn test_ora -sqlQuery 'select * from myTable'