请问 shell 下如何模拟按键?
- 0次
- 2021-07-09 21:53:25
- idczone
需求场景是这样的,我有个命令行界面的管理工具,想要系统启动的时候启动这个管理工具自动选择里面的检测项,然后输出结果到文件,脚本如下:
sh /home/xa_linux/start.sh
sleep 10
script -a /home/xa_linux/system.log
/home/swcard/management/swcsmmgmt_v3.6_x64
#启动完这个管理程序以后,想要选择“9”,也就是想模拟键盘按下9,如何实现呢?
exit
谢谢众神
看看expect
xdotool可满足用代码来按键盘
xdotool,前提是用的终端模拟器
没有x11也能用吗?
没有x11也能用吗?
没有x11好像不行啊
```
echo "9\n" | /home/swcard/management/swcsmmgmt_v3.6_x64
```
应该就可以了吧= =或者用yes也可以
```
yes 9 | /home/swcard/management/swcsmmgmt_v3.6_x64
```
不光要选9。。。先选3-->2(管理员登录),然后输入管理员的密码,然后回车,然后按R-->R-9
你可以试试修改echo到你需要的顺序, 比如echo "3\n2\n管理员密码\nR\nR\n9\n"
感觉你这就是个交互过程,建议用expect。
expect 你会爱上她
参考以下写法:
fdisk /dev/mmcblk0 <p
d
2
n
p
2
$PART_START
p
w
EOF
除了expect , awk 也可以
谢谢,我已经完全沉醉于expect了,谢谢大家