我正在运行以下交互式Jar。
java -jar script.jar
argument-line-here
\n
现在我正在创建一个运行jar文件的bash脚本。 如何将参数行和构造“\ n”传递给此交互式脚本?这些是脚本的输入行。
This question有一些答案,expect
尚未安装在我的系统上,而且我没有sudo。
编辑:.jar也不会返回任何文字。它只需要2行。 (一个带有参数,另一个带有构造输入)。 我也无法编辑Java应用程序。这不是我的剧本。如果我能做到的话。
我尝试但没有奏效的事情。
java -jar myscript.jar
<<< &"argument1 argument2 argument3 argument4" <<< $"\n"
和
java -jar java -jar myscript.jar > tmp.txt
expect ""
send "argument1 argument2 argument3 argument4"
expect ""
send "\n"
答案 0 :(得分:1)
如果要重定向程序的正常标准输入,可以使用所谓的“here documents”(参见例如the BASH manual page):
java -jar script.jar <<EOF
your input here
EOF
这意味着标准输入(a.k.a。stdin
)被重定向,并且将成为“here document”中的文本,在本例中为your input here
。