如何在 shell 脚本中使用两个“for 语句”?

如何在 shell 脚本中使用两个“for 语句”?

编写脚本来创建用户帐户。编写脚本是为了回显 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

相关内容