[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] Sobre script bash



----- Mensaje original -----
> De: fernando sainz <fernandojose.sainz@gmail.com>
> Para: "debian-user-spanish@lists.debian.org" <debian-user-spanish@lists.debian.org>
> CC: 
> Enviado: jueves, 20 de junio de 2013 13:09
> Asunto: Re: [OT] Sobre script bash
> 
> El día 20 de junio de 2013 17:55, Julian Perconti
> <vh1988@yahoo.com.ar> escribió:
>>  ----- Mensaje original -----
>>>  De: fernando sainz <fernandojose.sainz@gmail.com>
>>>  Para: Julian Perconti <vh1988@yahoo.com.ar>
>>>  CC:
>>>  Enviado: jueves, 20 de junio de 2013 12:35
>>>  Asunto: Re: [OT] Sobre script bash
>>> 
>>>  El día 20 de junio de 2013 16:46, Julian Perconti
>>>  <vh1988@yahoo.com.ar> escribió:
>>>>   Saludos,
>>>>   Tengo el siguiente script basico para migrar permisos:
>>>>   # BOF
>>>>   #!/bin/bash
>>>>   j=0
>>>>   echo "ID del GRUPO a buscar:"
>>>>   read gida
>>>>   echo "ID del GRUPO por el cual reemplazar a los que
>>>>   se encuentren:"
>>>>   read gidn
>>>>   for i in `find $pwd -gid $gida -print0 | xargs -0 chgrp
>>> 
>>>  ¿Este salto de linea lo ha hecho el correo supongo? así estaría mal.
>>> 
>>>  veo algo extraño en el xargs, por defecto recibe cada valor devuelto
>>>  por el find, no entiendo por que le pasas $i
>>> 
>>>  S2.
>>> 
>>>>   $gidn "$i"`; do
>>>>           let j=j+1
>>>>   done
>>>>   echo $j 'reemplazos'
>>>>   #EOF
>>> 
>>> 
>>> 
>>> 
>>>>   En si el script, funciona bien, es decir, los permisos se
>>>>   cambian según los id proporcionados; el problema es que me arroja 
> el
>>>  siguiente
>>>>   error:
>>>>   chgrp: cannot access `': No such file or directory
>>>>   Y el contador me da siempre 0.
>>>>   Probé de escribirlo de formas distintas, por ejemplo
>>>>   meter la salida en un tmp y luego cat tmp, etc..
>>>>   Alguna idea?
>>>>   Aclaro que no soy programador ni mucho menos, asique toda
>>>>   sugerencia/critica/mejora es bienvenida!
>>>>   Gracias de antemano!
>>>> 
>>>> 
>>>>   --
>>>>   To UNSUBSCRIBE, email to 
> debian-user-spanish-REQUEST@lists.debian.org
>>>>   with a subject of "unsubscribe". Trouble? Contact
>>>  listmaster@lists.debian.org
>>>>   Archive:
>>> 
> [🔎] 1371739576.91232.YahooMailNeo@web160205.mail.bf1.yahoo.com">http://lists.debian.org/[🔎] 1371739576.91232.YahooMailNeo@web160205.mail.bf1.yahoo.com
>>>> 
>>> 
>> 
>>  Respondo a la lista:
>> 
>>  Bueno efectivamente le saque "$i" y el error desapareció pero 
> sigue apareciendo otro:
>> 
>>  chgrp: cannot dereference 
> `./.pulse/0494f201138428357ab0646c51ada1e2-runtime': No such file or 
> directory
>> 
>>  Y la salida de sh -x: (antes de quitarle $i)
>> 
>>  root@debian:/home/julian# sh -x migraperm
>>  + j=0
>>  + echo ID del GRUPO a buscar:
>>  ID del GRUPO a buscar:
>>  + read gida
>>  1000
>>  + echo ID del GRUPO por el cual reemplazar a los que se encuentren:
>>  ID del GRUPO por el cual reemplazar a los que se encuentren:
>>  + read gidn
>>  0
>>  + find -gid 1000 -print0
>>  + xargs -0 chgrp 0
>>  chgrp: cannot access `': No such file or directory
>>  chgrp: cannot dereference 
> `./.pulse/0494f201138428357ab0646c51ada1e2-runtime': No such file or 
> directory
>>  + echo 0 reemplazos
>>  0 reemplazos
>> 
>>  Sin embargo algo esta mal hecho y no me doy cuenta porque el contador sigue 
> dando 0:
>> 
>>  root@debian:/home/julian# ./migraperm
>>  ID del GRUPO a buscar:
>>  0
>>  ID del GRUPO por el cual reemplazar a los que se encuentren:
>>  1000
>>  0 reemplazos
>> 
>>  El script quedó asi:
>> 
>>  #!/bin/bash
>>  j=0
>>  echo "ID del GRUPO a buscar:"
>>  read gida
>>  echo "ID del GRUPO por el cual reemplazar a los que se 
> encuentren:"
>>  read gidn
>> 
>>  for i in `find $pwd -gid $gida -print0 | xargs -0 chgrp $gidn`;
>>  do
>>          let j=j+1
>>  done
>>  echo $j 'reemplazos'
>> 
>>  Muchas gracias por sus prontas respuestas!
>> 
> 
> Creo que es un error de concepto.
> la salida del `find.....| xargs ...` va a estar vacía. Prueba a ejecutarlo solo.

Es verdad Fernando, me estaba empezando a dar cuenta, aparentemente el let no se esta ejecutando porque el contador es 0 (creo que es eso)

La salida de ejecutarlo solo devuelvo solo una línea de error de no 'No such file or directory'.

Voy a buscar la forma de contar los elemento separadamente; de todas formas no es algo critico (el script ya cumple su función), solo me entusiasme un poco y quería imprimir en pantalla la cantidad de elementos modifiados.

> 
> S2.

Saludos!

> 
> 
> --
> To UNSUBSCRIBE, email to debian-user-spanish-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact 
> listmaster@lists.debian.org
> Archive: 
> [🔎] CAGw=rHhnv1c0J68sRe4eiRxk9LLz8rhEMTc6p9vvvXkp7_ZtjQ@mail.gmail.com">http://lists.debian.org/[🔎] CAGw=rHhnv1c0J68sRe4eiRxk9LLz8rhEMTc6p9vvvXkp7_ZtjQ@mail.gmail.com
> 

Gracias y saludos!


Reply to: