技术解析

请问 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了,谢谢大家

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服