先看代码
for i in 'cat addusers.txt' ;do useradd $i &>/dev/null && echo "123" | passwd $i --stdin && echo "$i create sucessfully";
done
从名为 “addusers.txt” 的文件中读取用户名,并使用 “useradd” 命令创建用户账户。然后,它使用 “passwd” 命令通过标准输入设置每个用户的默认密码为 “123”。最后,它会为每个成功创建的用户输出一条成功消息。
然而,这个命令存在一些问题:
- “&>/dev/null” 会将标准输出和标准错误都重定向到 /dev/null,从而丢弃任何错误消息。这意味着在创建用户或设置密码过程中出现错误时,错误消息将被隐藏,不便于识别和解决问题。
一个修正后的命令可能如下所示:
while read -r i; do
useradd "$i" &>/dev/null && echo "123" | passwd "$i" --stdin && echo "$i 创建成功"
done < addusers.txt
这个版本使用 “while read” 逐行从 “addusers.txt” 文件中读取用户名,并修正了 “useradd” 和 “passwd” 命令的语法错误。错误消息不会被隐藏,这样你可以识别和修复在创建用户或设置密码过程中可能出现的问题。