La solucion a tu problema es esta.
#!/bin/sh
FILE=""
if [ "$1" == "" ]; then
FILE="usuarios"
else
FILE="$1"
if [ ! -f $FILE ]; then
echo "$FILE : no existe"
exit 1
elif [ ! -r $FILE ]; then
echo "$FILE: no se puede leer"
exit 2
fi
fi;
for i in $FILE
#*
do
xx=""
#echo -e '\n\n'
echo "-- ## `ls -d $i` ## --"
#cat $i
xx="cut -d , -f 2 usuarios";
yy="cut -d , -f 1 usuarios";
useradd `$yy` -p `$xx`
# useradd `$xx`
# cut -d, -f 2 usuarios
# useradd -m
# cat $xx
done
el error estaba en la parte final.. Estabas mal interpretando el valor que te resultaba de xx.
en tu caso el comando que ejecutaba era
useradd cut -d , -f 2 usuarios
y por el man del usseradd despues de -d esta el home directory y salia que la coma no era un directorio valido.
Entonces
si pones xx="cut -d , -f 2 usuarios"
xx tiene un string es decir tiene la cadena "cut -d , -f 2 usuarios"
si quieres que se ejecute esta cadena debe de estar entre ` ` estos apostrofes.
y solucionado..
Como nota muy aparte..
Que bueno es ver a una mujer en linux, programando y ademas en bash, es dificil ver eso, te felicito.
Atte
Horacio Goetendia B.
On 7/14/06, Paola Mengoni <[EMAIL PROTECTED]> wrote:
#!/bin/sh
FILE=""if [ "$1" == "" ]; then
FILE="/root/pruebas/usuarios"
else
FILE="$1"
if [ ! -f $FILE ]; then
echo "$FILE : no existe"
exit 1
elif [ ! -r $FILE ]; then
echo "$FILE: no se puede leer"
exit 2
fi
fi
for i in $FILE
#*
do
xx=""
#echo -e '\n\n'
echo "-- ## `ls -d $i` ## --"
#cat $i
xx="cut -d , -f 2 usuarios"
echo " nuevo ---- `$xx`"
useradd -m $xx# useradd `$xx`
# cut -d, -f 2 usuarios
# useradd -m
# cat $xx
done
From: "Angel Rengifo Cancino" < [EMAIL PROTECTED]>
Reply-To: [email protected]
To: [email protected]
Subject: Re: [l-plug] scripts
Date: Fri, 14 Jul 2006 14:53:59 -0500
>Hola:
>
>Es dificil ayudarte de esa forma y me pregunto mas bien ¿Podrias
>enviar ese script para ayudarte a depurarlo? Creo saber cual es el
>problema pero mejor seria verlo.
>
>
>El 14/07/06, Paola Mengoni<[EMAIL PROTECTED]> escribió:
>>
>>
>>
>>Hola lista, estoy tratando de crear un script que reciba como
>>parametro un
>>archivo de texto que puede contener mas de una linea en estas se
>>registraran
>>dos campos separados por "," el primer campo es el usuario y el
>>segundo es
>>el pass, la idea es que el script pueda crear los usuarios y sus
>>respectivos
>>pass. He trabajado con un for y dentro de el una variable XX="cut
>>-d , -f 2
>>usuarios" luego le doy un useradd $XX pero me sale un error
>>"Invalid home
>>directory `,`" Alguien me puede dar una mano???
>>
>>
>>
>>Slds,
>>
>>Paola
>>_______________________________________________
>>Linux-plug mailing list
>> [email protected]
>> http://www.linux.org.pe/cgi-bin/mailman/listinfo/linux-plug
>>
>>
>>
>_______________________________________________
>Linux-plug mailing list
> [email protected]
> http://www.linux.org.pe/cgi-bin/mailman/listinfo/linux-plug
_______________________________________________
Linux-plug mailing list
[email protected]
http://www.linux.org.pe/cgi-bin/mailman/listinfo/linux-plug
_______________________________________________ Linux-plug mailing list [email protected] http://www.linux.org.pe/cgi-bin/mailman/listinfo/linux-plug
