Linux/Unix Shell Scripting - Ayuda con la realización de un frontend de gzip y bunzip

 
Vista:

Ayuda con la realización de un frontend de gzip y bunzip

Publicado por Jesus Ruiz (4 intervenciones) el 10/05/2019 12:09:31
Hola, buenas, necesito realizar un frontend para archivos comprimidos, la idea es que si recibe un archivo gz o bz2 lo descomprima con gunzip y bunzip2.

Si lo que recibe es un tar.gz o un tar.b2 lo debe desempaquetar y descomprimir de en una unica vez con tar xzf o xjf.
Mi código es el siguiente
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/bash
 
if test $# -ne 1
then
	echo "Numero de parametros incorrecto"
	echo "Uso del programa: $0 archivo"
	exit 1;
fi
 
case "$1" in
	*.gz)
		echo "gzip"
		echo "Descomprimiendo"
		`gunzip $1`
	;;
	*.bz2)
		echo "bzip2"
		echo "Descomprimiendo"
		`bunzip2 $1`
	;;
	*.tar.gz)
		`tar xzvf $1`
	;;
	*.bzip2.gz)
		`tar xjvf $1`
	;;
esac

El problema esta en que aunque le pase un archivo con extensión .tar.gz me entra en la primera condición del case, he probado ha añadirle el dolar para que sea estrictamente que termine asi pero no funciona
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda con la realización de un frontend de gzip y bunzip

Publicado por Tom (361 intervenciones) el 10/05/2019 12:20:19
Probablemente sea tan simple como cambiar el orden de los case en el switch, para poner antes los más restrictivos y al final los más genéricos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar