passwd:当我运行我创建的 Bash 脚本时,Debian 上出现无法识别的选项“--stdin”错误

hos*_*fik 6 bash debian passwd

我正在使用Debian。我正在学习 Bash 脚本。我正在创建一个脚本来创建新用户并设置密码,问题是我收到passwd: unrecognized 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}
Run Code Online (Sandbox Code Playgroud)

eby*_*han 6

在 Debian 10 @ Docker 镜像上进行测试

echo -e "badpass\nbadpass" | passwd urname
Run Code Online (Sandbox Code Playgroud)

这将在 /bin/bash 中工作,而不是在 /bin/sh 中


echo "urname:badpass" | chpasswd
Run Code Online (Sandbox Code Playgroud)

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


Bsq*_* ℬℬ 3

没有--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}
Run Code Online (Sandbox Code Playgroud)