我用expect
通过ssh在远程主机上执行sudo命令。该脚本在于如下:sudo cmd通过ssh预期连续两次
spawn ssh -q ${user}@${host}
expect "*?assword:"
send "${pass}\r"
expect "${user}@"
send "sudo ls\r"
expect "*?assword:"
send "${pass}\r"
expect "${user}@"
send "exit\r"
interac
它运行完美的第一次,但是当我连续执行了它发生了一些错误。这是因为sudo
不会马上过期,所以如果在短时间内两次sudo某些命令,第二个可能不需要密码,因此上述脚本中的第二个send "${pass}\r"
失败!
那么我们如何检测并避免sudo不过期时发送密码?谢谢!