58

我正在创建自己的 bash 脚本,但我现在被困住了。基本上,该脚本将用于在 CentOS 中自动设置服务器。一些软件通常要求用户输入密码。我希望脚本将我生成并存储为变量的密码而不是询问用户。

当安装过程中出现“新密码:”消息时,如何使脚本将存储在变量中的值$key,就像用户使用 bash 脚本键入一样?

4

2 回答 2

64

你应该发现'expect'命令会做你需要它做的事情。它广泛可用。

一个非常粗略的例子:

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

spawn /usr/bin/passwd

expect "password: "
send "$pass"
expect "password: "
send "$pass"
于 2013-02-03T08:30:39.590 回答
4

这是我写的一个片段;询问用户密码并将其设置在 /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!"
于 2013-02-03T08:38:31.727 回答