Имитация пользовательского ввода в скрипте bash [закрыто]

Я создаю свой собственный скрипт bash, но я застрял в данный момент. В принципе, скрипт будет использоваться для автоматизации установки сервера в CentOS. Некоторые программы обычно просят пользователя ввести пароль. Я хочу, чтобы скрипт поместил пароль, который я создал и сохранил как переменную, а не спрашивал пользователя.

когда во время установки появляется сообщение "новый пароль:", как я могу заставить скрипт поместить значение, хранящееся в переменной $key как будто пользователь набрал его, с помощью bash-скрипт?

2 ответов


вы должны найти, что команда "ожидать" будет делать то, что вам нужно. Его широко доступны. См. здесь для примера:http://www.thegeekstuff.com/2010/10/expect-examples/

(очень грубый пример)

#!/usr/bin/expect
set pass "mysecret"

spawn /usr/bin/passwd

expect "password: "
send "$pass"
expect "password: "
send "$pass"

вот фрагмент кода, который я написал для скрипта y, чтобы запросить пароль пользователей и установить их в /etc/passwd. вы можете манипулировать им немного, вероятно, чтобы получить то, что вам нужно:

echo -n " Please enter the password for the given user: "
read userPass
useradd $userAcct && echo -e "$userPass\n$userPass\n" | passwd $userAcct > /dev/null 2>&1 && echo " User account has been created." || echo " ERR -- User acount creation failed!"