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.
sh o bash?
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
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.
Con bash creo recordar que con $* accedias a todos los parametros, busca
en el man.
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"
$BACKFILES=`cat < $BACKUPLIST` # Los nuevos backups.
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.
Prueba con:
BACKUPLIST='/exports/.backup.list'
BACKFILES=''
if [ -e $BACKUPLIST ]; then
echo "Existe Lista"
# aqui hay dos cambios
BACKFILES=`cat $BACKUPLIST` # Los nuevos backups.
fi
echo "Files: $BACKFILES"
exit 0
Saludos
--
////
(@ @)
---------------------------oOO----(_)----OOo------------------------
Los pecados de los tres mundos desapareceran conmigo.
Alexis Roda - Universitat Rovira i Virgili - Reus, Tarragona (Spain)
--------------------------------------------------------------------