作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我尝试在 shell 脚本中执行以下操作:
bash;
在 bash 上下文中:
./a.out
在 ./a.out
上下文中我需要模拟按键:
yes
3292
no
我该怎么做?我所有的尝试都失败了,因为 &
、&&
和 ;
在主 shell 上下文中而不是在 bash 中执行后续命令。
bash && echo "yes" > /dev/console
我看过use expect in shell script没有其他方法可以使用 native shell 命令吗?我不想依赖其他工具。
最佳答案
查看 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"
这只是一个简单的例子,手册页有很多深入的解释,安装时还有示例脚本。
引用资料
关于linux - 如何在 shell 脚本中打开 bash/ssh session 并在远程 session 中运行命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16980755/
我是一名优秀的程序员,十分优秀!