bash 交互式脚本传递输入

bash interactive script pass input

我是运行下面的互动Jar

java -jar script.jar
  argument-line-here
  \n 

现在我正在创建一个运行 jar 文件的 bash 脚本。 如何将参数行和构造“\n”传递给此交互式脚本?这些是脚本的输入行。

This question 有一些答案,expect 尚未安装在我的系统上并且我没有 sudo。

编辑:.jar 也没有 return 任何文本。它只需要 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"

如果你想重定向程序的正常标准输入,你可以使用所谓的"here documents"(参见the BASH manual page):

java -jar script.jar <<EOF
your input here
EOF

这意味着标准输入 (a.k.a.stdin) 被重定向并且将成为 "here document" 中的文本,在本例中为 your input here.