BASH Sleep&发送按键到程序

时间:2015-10-02 18:20:49

标签: linux bash keystroke

问题:在终端启动Adaptec Utility并闪烁第二个硬盘指示灯。睡觉并提交按键以结束眨眼。

> arcconf identify 1 device 0 1
Controllers found: 1
The specified device is blinking.
Press any key to stop the blinking.

命令:arcconf识别1个设备0 1

以下是我尝试的一些命令。

1。)echo -ne '\n' | arcconf identify 1 device 0 1

结果:启动程序并立即提交输入'。在驱动器闪烁之前停止该实用程序;我不确定如何在这里添加睡眠。

2。)kill -9 8309

结果:终止arcconf进程,但即使进程终止,驱动器也会永远闪烁。

3。)echo -ne '\n' > /proc/8309/fd/0

结果:发送'输入'但是,在此过程中,这只会向运行arcconf的终端打印新行,并且实际上并未提交击键。与echo" abcd"相同的结果。

如何在bash,sleep中启动此实用程序,并发送按键以停止该实用程序?

2 个答案:

答案 0 :(得分:1)

假设您想要睡5秒钟,请尝试使用bash进程替换

arcconf identify 1 device 0 1 < <(sleep 5; echo)

另一个更精确的选择是使用

expect <<'END'
spawn arcconf identify 1 device 0 1
expect "Press any key to stop the blinking"
send "\r"
expect eof
END

答案 1 :(得分:1)

使用shell语句分组:

{ printf '\n'; sleep 5; } | arcconf identify 1 device 0 1

程序stdin的管道将保持打开状态,直到睡眠结束。