我尝试在shell脚本中执行以下操作:
bash;
bash上下文中的:
./a.out
在./a.out
上下文中,我需要模拟keystorkes:
yes
3292
no
我该怎么办?我的所有尝试都失败,因为&
,&&
和;
在主shell上下文中而不是在bash中执行后续命令。
bash && echo "yes" > /dev/console
我见过use expect in shell script使用本机shell命令没有其他选择吗?我不想依赖其他工具。
答案 0 :(得分:2)
查看expect,借助用户提供的脚本与交互式程序“对话”。
<强>用法强>
expect ./interact
或使interact
可执行文件(chmod a+x interact
):
./interact
其中interact
是以下脚本:
#!/usr/bin/expect
spawn ./a.out
send -- "yes\r"
expect "3292\r"
send -- "no\r"
这只是一个简单的示例,手册页中有很多深入的解释,并且还有安装附带的示例脚本。
<强>参考强>