我正在创建自己的 bash 脚本,但我现在被困住了。基本上,该脚本将用于在 CentOS 中自动设置服务器。一些软件通常要求用户输入密码。我希望脚本将我生成并存储为变量的密码而不是询问用户。
当安装过程中出现“新密码:”消息时,如何使脚本将存储在变量中的值$key
,就像用户使用 bash 脚本键入一样?
我正在创建自己的 bash 脚本,但我现在被困住了。基本上,该脚本将用于在 CentOS 中自动设置服务器。一些软件通常要求用户输入密码。我希望脚本将我生成并存储为变量的密码而不是询问用户。
当安装过程中出现“新密码:”消息时,如何使脚本将存储在变量中的值$key
,就像用户使用 bash 脚本键入一样?
你应该发现'expect'命令会做你需要它做的事情。它广泛可用。
一个非常粗略的例子:
#!/usr/bin/expect
set pass "mysecret"
spawn /usr/bin/passwd
expect "password: "
send "$pass"
expect "password: "
send "$pass"
这是我写的一个片段;询问用户密码并将其设置在 /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 account creation failed!"