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