ユーザーアカウントを生成するスクリプトを作成します。 useraddコマンドをエコーするスクリプトが作成されています(それで期待どおりに機能していることを確認できます)。
ファイルがあります。新入社員.txt従業員名(名前と姓、スペースで区切られた)を含みます。 読み取るには$ FULLNAME変数が必要です。新入社員.txt。
これは私のスクリプトです。
#!/bin/bash
# This creates a file unames.txt containing usernames created from employees' full name
awk '!(NR%2){print substr($1,1,1)p}{p=substr($2,1,4)}' txtfiles/newemploy.txt | tr [:upper:] [:lower:] > txtfiles/unames.txt
GROUPID=500
USERID=500
for UNAME in `cat txtfiles/unames.txt`
do
echo "useradd -u$USERID -g$GROUPID -c "$FULLNAME" -d /home/$UNAME -m -s /bin/bash $UNAME"
GROUPID=`expr $GROUPID + 1`
USERID=`expr $USERID + 1`
done
答え1
次のことを試してください。
while read firstname lastname
do
fullname="$firstname $lastname"
uname=$(echo ${firstname:0:1}${lastname:0:4} | tr '[:upper:]' '[:lower:]')
echo $fullname $uname
done < newemploy.txt