Re: [OT] Sobre script bash
----- 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!
Reply to: