bash交互式脚本传递输入

时间:2015-06-23 08:26:57

标签: bash command-line-arguments

我正在运行以下交互式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"

1 个答案:

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