Hola, pues eso que no sé donde está el error de este código, si alguien me pudiera ayudar estaría bien.
Código:
#! /bin/bash
# Ejercicio que empaqueta una serie de archivos o directorios y los comprime,
# también los introduce en la carpeta CopiasSeguridad
si_existe(){ #Función que dice si un argumento existe
local f="$1"
[[ -a "$f" ]] && return 0 || return 1
}
if [ "$#" = "1" ]; then #Si el número de argumentos es uno pues...
if ( si_existe "$1" ) ; then #comprobamos que existeel argumento
tar -cvf copia.tar "$1" #empaquetamos
gzip copia.tar #comprimimos
if ( si_existe "CopiasSeguridad") then #Vemos si ya existe la carpeta destino
mv copia.tar.gz CopiasSeguridad #Como existe lo movemos directamente
else # Si no creamos CopiasSeguridad y lo metemos dentro
mkdir CopiasSeguridad
mv copia.tar.gz CopiasSeguridad
fi
else
printf "El directorio no existe\nForzaré la salida del script, a mí nadie me vacila\n" #Si no existe el directorio o archivo fozamos la salida del script
exit
fi
else
if [ "$#" = "0" ]; then
printf "Numero de argumentos incorrecto, que quieres que haga con 0 argumentos\n" #Si no introducimos argumentos forzamos la salida
exit
else #Si el nº de argumentos es mayor que 1 hacemos esto:
> copia.tar #Creamos un copia.tar vacío
if ( si_existe "$1" ) then #Vemos si existe el primer argumento
tar -cvfcopia.tar "$1" #Empaquetamos el primer argumento
else
printf "El archivo o directorio $1 no existe, no lo añadiré a CopiasSeguridad, lo siento\n" #Si no existe forzamos la salida
fi
for (( CONTADOR=2; CONTADOR<="$#"; CONTADOR++ )) ; do #Este bucle me va empaquetando uno a uno cada uno de los argumentos
if ( si_existe "$CONTADOR" ) then
tar -rvfcopia.tar "$CONTADOR" #Creo que el error está aquí
else
printf "El archivo o directorio $CONTADOR no existe, no lo añadiré a CopiasSeguridad, lo siento\n"
fi
done
gzip copia.tar #Comprimimos
if ( si_existe "CopiasSeguridad") then
mv copia.tar.gz CopiasSeguridad #Movemos nuestro archivo compreso a CopiasSeguridad
else
mkdir CopiasSeguridad #Creamos la carpeta y luego la movemos
mv copia.tar.gz CopiasSeguridad
fi
fi
fi
Gracias por vuestra visita.