我正在尝试编写一个从文件创建用户名的脚本,但如果有两个相同的用户名,则每次将后一个用户名增加1。我想我搞砸的是if / else语句,但任何帮助都会受到赞赏。
#!/bin/bash
if [ $# -ne 0 ]; then
echo "usage: $0 < file" exit 1
fi
while read user_list; do
first=echo $user_list | cut -f 1 -d ',' `last=`echo $user_list | cut -f 2 -d ','
lastl=echo $last | head -c 1 usern=echo $first $lastl | tr 'A-Z' 'a-z'
tname=echo $first $last
groupadd $usern useradd -c "${first}${last}" -d /home/${usern} -g $usern -m -s /bin/bash $usern
passwd=$(cat /dev/urandom |tr -dc 'A-Za-z0-9' | head -c 8)
cat /tmp/pw.tmp | /usr/bin/passwd --stdin ${usern} > /dev/null
echo "adding $tname : $usern, $passwd"
done
original_username=$usern
username_digit=0
while read line; do
grep -w $usern /etc/passwd
if [[ ! usern /etc/passwd]]; then
username_digit=$((username_digit +1))
usern=$((original_username + $username_digit))
else
usern+$original_username
fi
done
答案 0 :(得分:0)
if grep -q "^${usern}:" /etc/passwd; then
username_digit=$((username_digit++))
usern="$original_username$username_digit"
(...)