Re: Dudas haciendo un shell script
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Tuesday 17 June 2003 15:42, Pablo Giménez Pizarro wrote:
> Que tal lista, a ver me han surgido un par de dudillas mientrás
> programaba un shell script.
> El script es en sh.
> La finalidad del script es adaptar el entorno para la ejecución de un
> comando.
> Para ello primero el script puede recibir un número indeterminado de
> parámetros, entre 1 y 6 normalemente, todos estos son para el comando
> que luego lanzaremos por lo tanto, necesito meter todos en una variable
> para así a la hora de ejecutar el comado poder indicarle los parátros
> facilmente. ¿Cómo puedo hacer esto de una forma más o menos limpia, hay
> alguna forma de pasar todos los parámetros a partir de 0($0), es decir,
> $1, $2, $3, etc..., a una variable sin tener que recorrerlos todos? si
debbie:/home/vcalzado# cat prueba.sh
#!/bin/bash
#todos los argumentos
echo "$@"
debbie:/home/vcalzado# bash prueba.sh espacio reservado para toda su
publicidad
espacio reservado para toda su publicidad
> esto no es posible la única opción que quedaría sería ir iterando por
> los parámtros hasta que ya ni haya más definidos??.(Algo así como un
> while [ -z $X], la X se sustituiría por el número que tocase.
>
#!/bin/bash
echo "$#"
while [ 0 -ne $# ]
do
echo $1
shift
done
Con lo que es bastante sencillo ir metiendo los argumentos en su
correspondiente posición...
pero realmente lo que quieres es algo como....
/usr/share/doc/util-linux/examples/getopt-parse.bash.gz
que te permite hacer las cosas que tu quieres controlando ademas errores y
muchas cosas mas, para mas información man getopt, eval no tiene man
aparentemente pero tambien te será muy útil
> La otra duda estriba en que necesito leer un fichero que en su primera
> línea contiene los nombres de otros ficheros a procesar, se me ocurrió
> hacer algo así como:
> #!/bin/sh
>
> BACKUPLIST='/exports/.backup.list'
> BACKFILES=''
>
> if [ -e $BACKUPLIST ]; then
> echo "Existe Lista"
si te fijas...... estas haciendo una expansión de la variable y no
declarándola, que esto no es perl.....
> $BACKFILES=`cat < $BACKUPLIST` # Los nuevos backups.
y al estar la variable vacia tienes
=`cat < $BACKUPLIST`
justo tu error :))
> fi
>
> echo "Files: $BACKFILES"
>
> exit 0
>
> Pero el script anterior me devuelve el siguiente error:
> cleo1:/tmp# ./p.sh
> Existe Lista
> ./p.sh: =/home: No existe el fichero o el directorio
> Files:
> cleo1:/tmp#
>
> El fichero /exports/.backup.list existe y contiene:
> /home
>
> Alguna luz sobre este error, gracias.
naaaaaaaaaaaaaa, hoy estamos de oferta , te vamos a regalar tres farolas :)))
http://www.tldp.org/LDP/abs/html/index.html
un saludo
Victor
- --
Lo que la naturaleza no da....
O'reilly & Associates no lo prestan
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)
iD8DBQE+8BzEEzqHF8R72ekRAk6jAJ4wlWm40lmbK6FvZIcPkfj1lyd8tQCdGu71
iwQQvGYh/MMpdIc4p1rSKyM=
=0NCd
-----END PGP SIGNATURE-----
Reply to: