在shell脚本中总是要用到交互问题,很多初学者不会使用expect,对expect不熟悉,我将自己的第一个shell脚本中使用expect写出来
这是一个普通用户需要root权限查找坏块,代码部分是shell脚本中expect语言部分。
其中mypassword是root用户的密码,请根据自己的密码编写
spawn是expect自带的命令,主要是给连接加一个外壳
expect是当出现引号里的内容,进行交互,
send是需要输入的密码或命令,输入完记得回车"\n"
shell脚本中的变量可以在expect中使用,如代码中的$FILE
/usr/bin/expect <<-EOF
spawn su -root
expect "Password: "
send "mypassword\n"
send "badblocks -s -v /dev/vda1>$FILE\n"
set timeout 15
send "exit\n"
expect eof
EOF
注意:本人在文本中写的代码,所以上述代码请自己敲在脚本中。