Shell:编写一个在stdin等待时执行的脚本

时间:2016-04-08 16:56:14

标签: bash shell

我有这个命令command,在某些时候返回:Press Enter to continue

我想编写一个调用command的脚本,读取最远的命令输出,在Press Enter to continue到达时对其执行某些操作,并在完成此操作时模拟输入按键。

我有机会实现这一目标吗? :-D

类似的东西:

myscript | command > output

myscript

#!/bin/bash

cp output output2 # output2 should only contain the output until Press Enter to continue
echo -ne '\n'

除了它不起作用! : - )

1 个答案:

答案 0 :(得分:1)

理想情况下,您应该使用expect命令来实现该示例代码:

#!/usr/bin/expect
set timeout 600
spawn command
expect "Press Enter to continue" { send "\r" }

注意:用您的命令替换command

然后将其保存到脚本中,使其可执行并运行它。

检查:man expect以获取更多信息。

在OS X上安装:brew install expect