Hola Paola

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

Responder a