expect脚本,qt qprocess简单使用

在面临一些需要交互的时候,比如输入密码,我们需要手动的输入密码,很麻烦,

我们可以使用expect脚本,

首先我们下在expect,tcl,tk

dnf install expect*

然后开始写脚本

`#!/usr/bin/expect

spawn su root
`
expect “Password:” //这里的expect也是expect的一个内部命令,有点晕吧,expect的shell命令和内部命令是一样的,但不是一个功能,习惯就好了。这个命令的意思是判断上次输出结果里是否包含“password:”的字符串,如果有则立即返回,否则就等待一段时间后返回,

send “你的密码” //这里就是执行交互动作,与手工输入密码的动作等效。
温馨提示: 命令字符串结尾别忘记加上 “\r”,如果出现异常等待的状态可以核查一下。

interact //执行完成后保持交互状态,把控制权交给控制台,这个时候就可以手工操作了。如果没有这一句登录完成后会退出,而不是留在远程终端上。如果你只是登录过去执行一段命令就退出,可改为[expect eof]

qt 的qprocess 可以在进程内执行其他的程序,包括shell脚本
`
范例:

{

QString program=”path”;

Qprocess *test =new QProcess;

test->start(program);//这里的program是任何可以运行的东西,

}
`
本来我希望做一个qt 的程序运行expect脚本,执行自动代码,但是无法获取root权限,以后如果我知道如何获取权限,一定完成这个软件.