使用脚本功能而不是键盘输入

使用脚本功能而不是键盘输入

我正在编写一个 shell 脚本来更改用户的密码。我尝试使用该passwd命令,但该命令总是要求输入旧密码和新密码;它不会接受我的脚本中的它们。

有没有办法在 shell 脚本中更改用户的密码,其中旧密码和新密码来自变量等?

答案1

#!/usr/bin/expect -f
spawn passwd username
expect "New password:"
send -- "user-password\r"
expect "Retype new password:"
send -- "user-password\r"
expect eof

测试

我将其保存为script.exp,当我运行脚本时,这是我在机器中得到的输出。

expect script.exp
spawn passwd ramesh
Changing password for user ramesh.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

我不必使用键盘输入密码。当然,您可以修改该功能以进一步满足您的要求并按照您想要的方式使用它。

相关内容