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
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