A fenti megoldásod csak akkor jó, ha a névben nincs szóköz.
Ha van, akkor inkább ez fog működni :
#!/bin/bash
MAX=$(cat ./felhasznalok.txt | wc -l);
for i in $(seq 1 $MAX);
do
line=$(cat ./felhasznalok.txt | grep -n ";" | grep "^$i:" | cut -d":" -f2);
felhnev=$(echo $line | cut -d";" -f1)
jelszo_512=$(mkpasswd -m sha-512 `echo $line | cut -d";" -f2`)
jelszo_md5=$(mkpasswd -s --hash=md5 `echo $line | cut -d";" -f2`)
nev=$(echo $line | cut -d";" -f3)
csoport=$(echo $line | cut -d";" -f4)
shell=$(echo $line | cut -d";" -f5)
useradd -m -N -c "$nev" -p $jelszo_md5 -G $csoport -s $shell $felhnev
done