Shellscript med variabler istf inmatning [LÖST]
Postat: 09 sep 2008, 19:03
Efter att ha lagt till drygt 100 användare på raken manuellt i Samba/Ubuntu Server har jag nu insett att det krävs bättre metoder om man ska stå ut. Därför har jag försökt mig på att scripta stegen och hämtar alla användaruppgifter från en textfil. Nu har jag stött på några problem. Scriptet ser ut så här:
Problem:
1) Användarens fulla namn innehåller ju ett blanksteg som ställer till problem. Jag har försökt med alla varianter jag kan komma på, men inget fungerar. Jag trodde att fnuttar eller citattecken runt 'Förnamn Efternamn' skulle fungera.
2) Vid "smbpasswd" krävs ju att man matar in ett lösenord två gånger. Hur slipper jag inmatningen för att i stället ta lösenordet från textfilen med $PASS? Har testat ett par varianter utan framgång.
3) Textfilen med uppgifterna kommer från export ur en Excelfil i Windows. Hur löser jag problemet med radbrytningstecknen som är olika?
Något annat jag borde tänka på? Tex nån idé om hur man skulle kunna fånga upp fel, tex när användarnamnen redan är upptagna, utan att loopen avslutas?
Kod: Markera allt
#!/bin/bash
#
NEWUSERS="/home/anv.txt"
cat ${NEWUSERS} | \
while read FULLNAME USER GROUPS PASS ; do
useradd -c ${FULLNAME} -g 1001 -G ${GROUPS} -m -d /home/users/${USER} -p ${PASS} ${USER}
smbpasswd -a ${USER} -p ${PASS}
chmod 700 /home/users/${USER}
done
Problem:
1) Användarens fulla namn innehåller ju ett blanksteg som ställer till problem. Jag har försökt med alla varianter jag kan komma på, men inget fungerar. Jag trodde att fnuttar eller citattecken runt 'Förnamn Efternamn' skulle fungera.
2) Vid "smbpasswd" krävs ju att man matar in ett lösenord två gånger. Hur slipper jag inmatningen för att i stället ta lösenordet från textfilen med $PASS? Har testat ett par varianter utan framgång.
3) Textfilen med uppgifterna kommer från export ur en Excelfil i Windows. Hur löser jag problemet med radbrytningstecknen som är olika?
Något annat jag borde tänka på? Tex nån idé om hur man skulle kunna fånga upp fel, tex när användarnamnen redan är upptagna, utan att loopen avslutas?