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

如何编写Bash脚本调用程序并实现延迟自动输入参数?

可行实现方法

方法一:使用Bash管道+sleep(无需额外工具)

直接通过子shell结合sleep延迟后输出输入值,再通过管道传递给程序,实现启动程序后延迟输入的效果:

# 延迟3秒后输入8,可自行调整sleep的秒数
(sleep 3; echo 8) | ./test

原理:管道两侧的进程同时启动,./test启动后会等待标准输入,而左侧子shell先执行sleep 3等待3秒,再输出8,此时程序就能接收到延迟后的输入。

方法二:使用expect工具(适合复杂交互场景)

如果需要处理更复杂的交互式流程,可以用expect工具(部分系统默认未安装,需自行安装,比如apt install expect或yum install expect):

  1. 编写expect脚本(比如命名为run_test.exp):
#!/usr/bin/expect
# 启动test程序
spawn ./test
# 延迟3秒
sleep 3
# 发送输入值,\r模拟回车
send "8\r"
# 等待程序结束
expect eof
  1. 给脚本添加执行权限:
chmod +x run_test.exp
  1. 运行脚本:
./run_test.exp

原脚本问题说明

你之前用的Here Document(<<EOF)是将EOF之间的内容一次性作为标准输入传递给程序,程序启动后会立刻收到输入,无法实现延迟输入的效果,因此不符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 15:25:16