[英]How to pass the contents of the file in String format as a parameter to a java method from shell script?
我正在从外壳程序脚本中调用Java方法,它接受String参数。 我应该将整个文件的内容作为参数传递。
现在从shell脚本中,我正在使用获取整个文件的内容
orgFileContent=$(awk '$1=$1' ORS='\\\\n' $orgFile)
当我尝试在sh中打印此文件时。我正在获取全部内容。但是当我尝试打印此被称为java方法的文件时,我仅获得了前两行。
会是什么原因呢? 如何将整个文件作为字符串传递?
提前致谢
假设您在Main类中有一个静态main。 您可以使用xargs命令将文件的内容传递给执行中的Java程序,即
$ xargs java -classpath CLASSPATH Main < youInputFile
这样,文件的内容将通过管道传递给xargs命令,因此您可以使用简单的方法打印文件内容
System.out.println(args[0])
但是,如果您尝试执行如下所示的命令,则输入文件中存在的任何换行符都将意味着传递了新的参数,因此相同的Java代码将仅打印第一行,然后忽略文件的其余部分(因为第一个字是第一个arg,...)
$ cat yourInputFile | xargs java -classpath CLASSPATH Main
只需用双引号将变量
java -classpath CLASSPATH Main "$orgFileContent"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.