我编写了一个脚本,我认为在程序请求输入时会向终端发送输入。我为此使用了回声。
password=open1234
for I in "a" "b" "c" "d" "e" "f" "g"
do
passwd ${I}
echo ${password}
done
这基本上是程序的形式。如您所见,我正在尝试使用脚本更改多个用户的密码。问题是echo的输入永远不会被发送到passwd程序。
答案 0 :(得分:2)
正如here所写,您必须向--stdin
添加passwd
选项。
echo "${password}" | passwd "${I}" --stdin
答案 1 :(得分:1)
只需使用(它会将所有用户更改为相同的密码):
#!/bin/bash
script='
passwd $user <<PASS
open1234
open1234
PASS
'
for user in $(cat user.txt)
do
$script
done