[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: 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: