避免shell脚本中的交互模式

避免shell脚本中的交互模式,shell,scripting,Shell,Scripting,有一个交互式shell控制台,我可以进入它,在控制台内运行特定的命令集,然后退出它 现在我想编写一个bash脚本,它连接到一个交互式shell控制台,以静默方式运行我的命令,并在最后退出而不进行任何交互。这意味着我希望以一种非交互式的方式实现所有的自动化。有什么办法可以做到这一点吗 我正在尝试类似的东西,比如说,blabla shell是这里的交互控制台,它总是让我进入交互模式:( /usr/bin/blabla shell 关闭stdin应该可以做到: exec <&- exe

有一个交互式shell控制台,我可以进入它,在控制台内运行特定的命令集,然后退出它

现在我想编写一个bash脚本,它连接到一个交互式shell控制台,以静默方式运行我的命令,并在最后退出而不进行任何交互。这意味着我希望以一种非交互式的方式实现所有的自动化。有什么办法可以做到这一点吗

我正在尝试类似的东西,比如说,blabla shell是这里的交互控制台,它总是让我进入交互模式:(

/usr/bin/blabla shell

关闭
stdin
应该可以做到:

exec <&-

exec您可以尝试将要在交互式提示符中输入的命令放入一个文件,然后按如下方式运行该命令:

command < file
命令
如果您的朋友是您的朋友,请使用
命令。它可以模拟与其他命令的交互通信,即使是以非常复杂的方式

发件人:

Expect是一个根据脚本与其他交互式程序“对话”的程序

也许安全SHell,
ssh
可以满足您的需要。它要求将“远程”计算机配置为ssh服务器。我经常使用它在其他主机上运行命令,例如

 ssh user@host command

感谢您的回复,在我的情况下,如果是/usr/bin/blabla shell,根据您可以通过
echo“connect localhost:35873\ngetconfigs\nquit”| flume shell-q
将命令传递给shell,仅供参考,我在上面提到的另一个问题中发布了在静默模式下运行flume配置的答案。
 ssh user@host command