如何使用sh脚本将输入发送到程序

时间:2014-02-19 06:03:38

标签: bash

我编写了一个脚本,我认为在程序请求输入时会向终端发送输入。我为此使用了回声。

password=open1234
for I in "a" "b" "c" "d" "e" "f" "g"
do
    passwd ${I}
    echo ${password}
done

这基本上是程序的形式。如您所见,我正在尝试使用脚本更改多个用户的密码。问题是echo的输入永远不会被发送到passwd程序。

2 个答案:

答案 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