避免在shell脚本中使用交互模式

时间:2012-06-01 13:26:42

标签: shell scripting

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

现在我想编写一个连接到交互式shell控制台并以静默方式运行命令的bash脚本,最后退出而不进行任何交互。这意味着我希望以非交互方式自动化所有内容。任何想法我怎样才能做到这一点?

我正在尝试类似的东西,比方说,blabla shell是这里的交互式控制台,它总是把我带到交互模式:(

/usr/bin/blabla shell << EOF 
do A,
do B,
do C
quit
EOF

我有一个很长/特定版本的问题可以在这里找到 - &gt; Configure flume in shell/bash script - avoid interactive flume shell console

4 个答案:

答案 0 :(得分:1)

结束stdin应该可以解决问题:

exec <&-

答案 1 :(得分:1)

expect命令,如果你的朋友。它甚至可以以非常复杂的方式模拟与其他命令的交互式通信。

来自man expect

  

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

答案 2 :(得分:0)

您可以尝试将在交互式提示中输入的命令放入文件中,然后运行如下命令:

command < file

答案 3 :(得分:0)

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

 ssh user@host command