You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在bash脚本中为交互式可执行文件依次传递输入内容?

自动传递交互式输入的实现方法

有三种常用的方案可以满足需求:

  • 方法1:Here Document(最推荐,固定输入场景最易用)
    把需要按顺序输入的内容放到Here Document块中,直接绑定到可执行文件的标准输入,修改后的脚本如下:
#!/bin/bash
./myExecutable << EOF
你的实际用户名
你的实际密码
EOF

两个EOF分隔符之间的内容会按行依次传给程序,刚好匹配先输用户名、再输密码的交互逻辑。

  • 方法2:管道传递短输入
    如果输入内容简单,也可以用echo加管道的方式一行写完:
#!/bin/bash
echo -e "你的实际用户名\n你的实际密码" | ./myExecutable

-e参数可以让echo识别转义字符\n,实现换行输入的效果。

  • 方法3:复杂交互场景用expect工具
    如果后续需要根据程序的输出动态返回不同的输入,推荐用专门的交互式自动化工具expect:
#!/bin/bash
expect -c '
spawn ./myExecutable
expect "Please enter username..."
send "你的实际用户名\r"
expect "Please enter passsword..."
send "你的实际密码\r"
expect eof
'

注意:部分系统默认没有预装expect,需要提前通过对应包管理器安装,比如Debian/Ubuntu系执行apt install expect,CentOS/RHEL系执行yum install expect

安全提醒:如果输入的密码属于敏感信息,不要直接明文写在脚本中,建议从环境变量、加密配置文件等安全渠道读取,避免凭证泄露。

内容的提问来源于stack exchange,提问作者tomiyos654

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 14:15:02