Muchas gracias por la info, el manual que indicas es lo que andaba buscando, ya he arreglado las cosilas que tenía mal y tira perfecto.

Victor Calzado Mayo wrote:

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




--
-------
Un saludo

Pablo Giménez Pizarro
-------
La única lucha que se pierde es la que se abandona.
(Mujeres de la Plaza de Mayo)
-------
Albion 3.0 Project: www.albion30.net



Reply via email to