从shell脚本中输入

12 shell

我有一个脚本调用需要用户输入的应用程序,例如运行应用程序,要求用户键入"Y"或"N".
如何让shell脚本不要求用户输入,而是使用脚本中预定义变量的值?

在我的情况下,将有两个问题需要输入.

Mar*_*ski 14

您可以在stdin中输入您想要的任何文本,它与用户自己键入的文本相同.例如,要模拟输入"Y",只需使用:

echo "Y" | myapp
Run Code Online (Sandbox Code Playgroud)

或者使用shell变量:

echo $ANSWER | myapp
Run Code Online (Sandbox Code Playgroud)

还有一个名为"yes"的unix命令可以为应用程序输出连续的"y"流,这些应用程序会询问您想要回答肯定的许多问题.

  • 在这种情况下,请尝试使用"printf"命令而不是echo,并在字符串中包含换行符.因此,如果你想回答"Y",那么"N"使用:printf"Y \nN \n"| MYAPP (3认同)