использование функции скрипта вместо ввода с клавиатуры

Я пишу сценарий оболочки, чтобы изменить пароль пользователя. Я попытался использовать команду passwd , но эта команда всегда запрашивает ввод старых и новых паролей; он не примет их из моего сценария.

Есть ли способ изменить пароль пользователя в сценарии оболочки, причем старый и новый пароль поступают, например, из переменных?

One Solution collect form web for “использование функции скрипта вместо ввода с клавиатуры”

 #!/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. 

Мне не пришлось вводить пароль с помощью клавиатуры. Конечно, вы можете изменить функцию, чтобы она соответствовала вашим требованиям и использовала ее так, как вы хотите.

  • X11 на сервере без пересылки
  • Как установить чувствительность мыши, а не только ускорение мыши?
  • Имитация нажатия клавиши PrintScreen
  • Расширение общей памяти MIT или MIT-SHM над ssh
  • Копирование / вставка не всегда работает с Firefox на терминал
  • Среда сеанса X11
  • X без драйвера дисплея
  • Как сохранить окно графика gnuplot-x11 открытым до закрытия вручную?
  • Взаимодействие с приложениями X программно
  • Команда для имитации ввода клавиатуры
  • Пользовательская раскладка клавиатуры не используется дословно
  • Linux и Unix - лучшая ОС в мире.