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: