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

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.

S2.


Reply to: