passwd:无法识别的选项'--标准偏差';运行创建的Bash脚本时在Debian上出错

passwd:无法识别的选项'--标准偏差';运行创建的Bash脚本时在Debian上出错,bash,debian,passwd,Bash,Debian,Passwd,我正在使用Debian。我正在学习Bash脚本。我正在创建一个创建新用户并设置密码的脚本。问题是我得到passwd:unrecogned option'--stdin'错误 这就是我的剧本: #!/bin/bash read -p "Please Enter Your Real Name: " REAL_NAME read -p "Please Enter Your User Name: " USER_NAME useradd -c "${COMMENT}" -m ${USER_NAME}

我正在使用Debian。我正在学习Bash脚本。我正在创建一个创建新用户并设置密码的脚本。问题是我得到
passwd:unrecogned option'--stdin'
错误

这就是我的剧本:

#!/bin/bash
read -p "Please Enter Your Real Name: " REAL_NAME 
read -p "Please Enter Your User Name: " USER_NAME 
useradd -c "${COMMENT}" -m ${USER_NAME} 
read -p "Please Enter Your Password: " PASSWORD
echo ${PASSWORD} | passwd --stdin ${USER_NAME}
passwd -e ${USER_NAME}
没有
--stdin
选项,需要用引号保护变量

这是一个工作版本:

#!/bin/bash
read -p "Please Enter Your Real Name: " REAL_NAME 
read -p "Please Enter Your User Name: " USER_NAME 
useradd -c "${COMMENT}" -m ${USER_NAME} 
read -p "Please Enter Your Password: " PASSWORD
echo -e "$PASSWORD\n$PASSWORD" |passwd "$USER_NAME"
passwd -e ${USER_NAME}

在Debian 10@Docker图像上测试

echo -e "badpass\nbadpass" | passwd urname
这将在/bin/bash中工作,而不是在/bin/sh中工作



这将在/bin/sh和/bin/bash中工作

可能没有这样的选项。这个选项的替代品是什么?
echo-e“$PASSWORD\n$PASSWORD”| passwd“$USER\u NAME”
@Cyrus非常感谢这项工作
echo "urname:badpass" | chpasswd