|
LFS,BLFS的源代码包很多,常见的压缩格式有
.tar.gz
.tar.bz2
.tar.bz2
.tgz
.zip
...
等,为了能够达到智能解压的目的, 编写了一个脚本以完成智能解压上面的扩展名
目的: 能够自动识别上边扩展并调用相应的命令进行解码
使用方法: 脚本名字 包的路径
执行结果: 成功 $?为0,并显示解压后的目的, 否则返回$?为1
示例;
命令:./decomp /lfs-sources/file-5.03.zip
结果:
file-5.03
脚本编写思路:
先编写一个解压的函数(以tar为例)如:
TAR_PROC()
{
local dir file
# 判断文件是否存在
if [ ! -f $1 ] ;
then
return 1
fi
#获取文件部分
file=$(echo $1 | sed 's/.*\///g')
if [ -z file ] ;
then
return 2
fi
dir=$(echo $file | sed 's/\(.tar.gz\)\|\(.tar.bz2\)\|\(.tgz\)//g')
if [ $dir = $file ] ;
then
return 3
fi
#判断tar命令是否存在
CHECK_CMD tar
if [ $? -ne 0 ] ;
then
return 4
fi
tar -xf $1
echo $dir #显示解压后的目录
return 0
}
最后在SH_MAIN添加相应的处理流程
# 进行tar流程
result=$(TAR_PROC $1)
if [ $? -eq 0 ] ;
then
echo $result
exit 0
fi
个人认为这样子编写可以方便扩展,而通过扩展,可以使脚本更智能化
附件 decomp.zip脚本
请大家都提意见,嘻嘻 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|