쉘 스크립트에서 두 개의 "for 문"을 사용하는 방법은 무엇입니까?

쉘 스크립트에서 두 개의 "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

관련 정보