我需要为压缩文件做一个前端,这个想法是,如果你收到一个gz或bz2文件,用bunzip2和gz解压缩它。
如果您收到的是一个tar.gz或tar.b2,您应该用tar或xjf解压缩一次。我的代码如下
#!/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问题是,即使我传递一个扩展名为.tar.gz的文件,我输入了情况的第一个条件,我也试图添加美元,严格地说它的结尾是那样的,但它不起作用。
发布于 2019-05-10 11:29:23
更改用例代码块的顺序,并在每个块之后添加一个中断。
如下所示:
#!/bin/bash
if test $# -ne 1
then
echo "Numero de parametros incorrecto"
echo "Uso del programa: $0 archivo"
exit 1;
fi
case "$1" in
*.tar.gz)
tar xzvf "$1"
break
;;
*.bzip2.gz)
tar xjvf "$1"
break
;;
*.gz)
echo "gzip"
echo "Descomprimiendo"
gunzip "$1"
break
;;
*.bz2)
echo "bzip2"
echo "Descomprimiendo"
bunzip2 "$1"
break
;;
*)
echo "Unknown extension"
break
;;
esachttps://askubuntu.com/questions/1142072
复制相似问题