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

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

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

  • Как написать короткую альфу, используя ключ создания
  • Согласование терминологии: Диспетчер отображения и менеджер сеансов, Система окон и оконный менеджер
  • Захват трафика протокола X11
  • Команда gnu screen для X
  • Как заставить Firefox почитать мою конфигурацию, чтобы отключить шрифт, намекающий на один шрифт?
  • Отображение ключа AltGr с помощью KDE On Ubuntu
  • Как выполнить x-компиляцию и установку X11 на ARM?
  • Разница между Xorg и Gnome / KDE / Xfce
  • 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. 

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

    Linux и Unix - лучшая ОС в мире.