Como usar DOIS “for statements” em um script de shell?

0

Escrevendo script para criar contas de usuário. O script é escrito para ecoar o comando useradd (para que eu possa ter certeza de que funcionará como esperado).

Eu tenho um arquivo newemploy.txt com os Nomes dos Funcionários (primeiro e último, separados por espaços). Preciso de uma variável $ FULLNAME que seja lida em newemploy.txt .

Aqui está o meu script:

#!/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
    
por Nwunye 02.06.2016 / 04:01

1 resposta

0

Tente algo ao longo destas linhas:

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
    
por 02.06.2016 / 08:57

Tags