Article View: es.comp.os.linux.programacion
Article #7893Re: bash y passwd
From: Claudio S.
Date: Sat, 18 Jan 2003 21:23
Date: Sat, 18 Jan 2003 21:23
78 lines
3308 bytes
3308 bytes
El Sat, 18 Jan 2003, Pacolinx <pacolinux@BORRAMEinicia.es> escribi�:
> Pacolinx dijo asi:
>
[...]
> Pego lo q tengo hecho:
>
>
>
> #cat crear.sh
> ---
> # Creacion de usuarios
>
Ejecuta con bash -x crear.sh
o bien pon como primera linea del script
#!/bin/bash -x
Y te sacar� una traza de qu� est� haciendo realmente
( el -v tambi�n es �til, pero te muestra los comandos sin haber hecho
las sustituciones de las variables, que en este caso no
te va ayudar tanto).
Ten cuidado con los espacios del fichero alumnes.
Te pongo m�s abajo una forma alternativa.
Un saludo.
--claudio--
> # Comtamos cuantos usuarios hay
> lineas=`wc -l < alumnes.txt`
>
> echo alumnos: $lineas
> I=1
>
> # Comprobamos si existe la carpeta
> if [ ! -d /home/alumnes ]; then
> echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> echo creando el directorio /home/alumnes ....
> echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> mkdir /home/alumnes
> fi
> chmod 755 /home/alumnes
>
> while [ $I -le $lineas ]; do
> linea=`sed -n ${I}l alumnes.txt`
> alumno=`echo $linea | cut -d";" -f3`
> echo linea: $linea
> echo alumno: $alumno
> let I=$I+1
> #if [ `grep "^${alumno}:" /etc/passwd | wc -l` -eq 1 ]
> #if egrep -q "^${alumno}:" /etc/passwd
> if grep "^${alumno}:" /etc/passwd
> then
> echo "El usuari " $alumno " Ya existe"
> else
> echo "El usuari " $alumno " No existe"
> fi
> done
cat alumnes.txt | awk -F';' '{print $4}' | sed 's; ;;g' | while read alumno do
if grep "^${alumno}:" /etc/passwd > /dev/null
then
echo "El usuari $alumno ya existe"
else
echo "El usuari $alumno NO existe"
fi
el sed quita los espacios. Hay otra posibilidad, que es usar expresiones
regulares como separador de awk. La expresi�n separadora ser�a:
un numero indeterminado de espacios, un punto y coma y otra cantidfad
indeterminada de espacios (cero o m�s).
El awk anterior habr�a que sustituirlo por
awk -F' *; *' '{print $4}'
Un saludo.
--claudio--
Technical Details
Message-ID:
<slrnb2jhf2.mpa.claudio@nntp.tralari.com>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!headwall.stanford.edu!fu-berlin.de!nsnmpen1-lo.nuria.telefonica-data.net!nsnmrro2-lo.nuria.telefonica-data.net!127.0.0.1!nobodyReferences:
<2conf-lb2.ln1@paldaria.dsland.org> <4tgof-ig1.ln1@paldaria.dsland.org>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,a0ddc9dad727a552 X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2003-01-18 13:28:58 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!headwall.stanford.edu!fu-berlin.de!nsnmpen1-lo.nuria.telefonica-data.net!nsnmrro2-lo.nuria.telefonica-data.net!127.0.0.1!nobody From: "Claudio S." <claudio@ningun.sitio.es> Newsgroups: es.comp.os.linux.programacion Subject: Re: bash y passwd Date: Sat, 18 Jan 2003 22:23:47 +0100 Organization: Telefonica Data Espagna Lines: 79 Message-ID: <slrnb2jhf2.mpa.claudio@nntp.tralari.com> References: <2conf-lb2.ln1@paldaria.dsland.org> <4tgof-ig1.ln1@paldaria.dsland.org> NNTP-Posting-Host: 139.red-80-59-173.pooles.rima-tde.net Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Trace: nsnmrro2-gest.nuria.telefonica-data.net 1042925336 1741 80.59.173.139 (18 Jan 2003 21:28:56 GMT) X-Complaints-To: usenet@nsnmrro2-gest.nuria.telefonica-data.net NNTP-Posting-Date: Sat, 18 Jan 2003 21:28:56 +0000 (UTC) User-Agent: slrn/0.9.7.4 (Linux)