如何使Bash脚本获取用户input以更改密码

在OSX上的以下命令将更改打开目录(Apple的LDAP)密码。 $是提示符:

$ dscl -u diradmin -P 'password' /LDAPv3/127.0.0.1 passwd /Users/username newpassword 

我很想把它变成一种交互式的shell脚本(我们称之为“odpasswd”),它首先提示pipe理员为他们想要更改密码的用户名,然后input密码,如下所示:

 $ odpasswd $ Username you'd like to change passwords for? johnd $ New Password? secretpassword $ Done! Password changed successfully for username 'johnd' to 'secretpassword' 

我不是足够的shell脚本专家知道如何把它变成这样的东西。

你的帮助总是非常感谢! 谢谢!

你可以为-P“$ password”定义variables。 还请阅读bash中的“读取”function。

$ dscl -u diradmin -P'password'/LDAPv3/127.0.0.1 passwd / Users / username newpassword

这是一个未经testing的脚本,但你可以弄明白。

 #!/bin/bash read -p "For which user to change the password? " username read -s "Enter the old password for $username " oldpassword read -s "Enter the new password for $username " newpassword dscl -u diradmin -P "$oldpassword" /LDAPv3/127.0.0.1 passwd /Users/"$username" "$newpassword"