>im 尝试创建一个脚本来检查用户之前是否已经注册,而不是在用户名后添加数字,例如username1
,并且在我获得唯一用户名后将继续循环。
在这里我尝试什么
username="tes2"
password="tes2"
exists=$(grep -c "^$username:" /etc/passwd)
case=$exists
i=1
while true
do
case "$case" in
*)
echo 'generate new user'
i=$(( $i + 1 ))
username="$username""$i"
exists=$(grep -c "^$username:" /etc/passwd)
case=$exists;;
0)
pass=$(perl -e 'print crypt($ARGV[0], "password")' $password)
useradd -m -p "$pass" "$username"
echo 'success add $username'
break;;
esac
done
echo "Quit"
当我运行此脚本时,它会保持generate new user
.
https://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_03.html
执行第一个匹配项的命令列表中命令。
https://www.gnu.org/software/bash/manual/bash.html#Conditional-Constructs
case
将有选择地执行与 word 匹配的第一个模式对应的命令列表。
*
始终匹配,因此始终执行。 如果您希望0
事例在匹配时执行,请将其放在*
事例之前。