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

She*_*jie 5 shell scripting

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

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

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

/usr/bin/blabla shell << EOF 
do A,
do B,
do C
quit
EOF
Run Code Online (Sandbox Code Playgroud)

我可以在这里找到这个问题的长/特定版本 -> 在 shell/bash 脚本中配置 Flume - 避免交互式 Flume shell 控制台

Ste*_*fan 3

关闭stdin应该可以解决问题:

exec <&-
Run Code Online (Sandbox Code Playgroud)

  • 根据[文档](http://archive.cloudera.com/cdh/3/flume/UserGuide/#_using_the_flume_command_shell),您可以通过 `echo "connect localhost:35873\ngetconfigs\nquit" | 将命令传递到 shell 水槽外壳-q` (2认同)