我正在创建自己的bash脚本,但此刻我被困住了。基本上,该脚本将用于自动化CentOS中的服务器设置。某些软件通常会要求用户输入密码。我希望脚本将我生成并存储的密码作为变量而不是询问用户。
如果在安装过程中出现“新密码:”消息,如何让脚本将值存储在变量$key
中,就像用户使用bash脚本键入它一样?
答案 0 :(得分:49)
您应该会发现'expect'命令会执行您需要它执行的操作。它广泛可用。请参阅此处以获取示例: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"
答案 1 :(得分:2)
这是我为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!"