
すべての Mac の管理者パスワードを変更するスクリプトを作成しています。
これは基本的なスクリプトですが、パスワードを変更する前に、パスワードが既に正しいかどうかを確認したいと思います。
if [ currentPwd == newPwd ] then
echo 'password is correct'
else
#change account password
fi
これはパスワードを変更するために使用している行です:
#Change management account locally on mac
sudo dscl . passwd /Users/"${accountName}" "${currentPassword}" "${newPassword}"
echo " Local Admin Account - Password changed! "
これは問題なく動作しますが、まずパスワードがまだ変更されていないことを確認したいと思います。どうすればいいでしょうか?
答え1
引用符を付けてこれを使用します: note single=
if [ "$currentPassword" = "$newPassword" ]; then
echo already changed
else
sudo dscl ...
echo Password changed
fi
答え2
これで問題は解決しました:
#Check for authentication
sudo dscl /Local/Default -authonly "${accountName}" "${currentPassword}" 2>&1 /dev/null
if [ "$?" != "0" ]; then
#Exit code was not 0 - password has already been changed so no further action
echo "No action taken, account already updated! "