-1

ファイルからユーザー名を作成するスクリプトを作成しようとしていますが、同じユーザー名が 2 つある場合、後者のユーザー名が毎回 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
4

1 に答える 1

0
if grep -q "^${usern}:" /etc/passwd; then
    username_digit=$((username_digit++))
    usern="$original_username$username_digit"
(...)
于 2013-03-18T14:19:23.633 に答える