shell脚本制作类似window下rar的自解压方式

在linxu系统下,一般下载软件安装包的时候,先解压,然后在解压后的目录下面一般都有shell脚本或者perl脚本,直接运行就可以帮你把所有的工作都完成,这种是很常见的,下面介绍一种类似于window下面的rar自解压方式。如下所示

dgq@serv_04 test $ ls
dhcp-4.2.4-P2.tar.gz  test.sh*

dgq@serv_04 test $ vim test.sh 
#!/bin/sh
{
tput clear
#cat << menu_message
#               ****************************
#               this is a test program
#               ****************************
#menu_message 
line=`wc -l $0 | awk '{print $1}'`
line=`expr $line - 12`
tail -n $line $0 | gunzip | tar xvf -
} 2>&1 | tee -a 'test.log' && exit $?
~                                       

dgq@serv_04 test $ cat dhcp-4.2.4-P2.tar.gz >> test.sh 


dgq@serv_04 test $ ./test.sh 
dhcp-4.2.4-P2/
dhcp-4.2.4-P2/aclocal.m4
dhcp-4.2.4-P2/bind/
dhcp-4.2.4-P2/client/
dhcp-4.2.4-P2/common/
dhcp-4.2.4-P2/configure
dhcp-4.2.4-P2/configure.ac
dhcp-4.2.4-P2/contrib/
dhcp-4.2.4-P2/depcomp
dhcp-4.2.4-P2/dhcpctl/
dhcp-4.2.4-P2/doc/
......
.......


dgq@serv_04 test $ ls
dhcp-4.2.4-P2/  dhcp-4.2.4-P2.tar.gz  test.log  test.sh*
dgq@serv_04 test $  

上面就是一个简单的例子,先把安装包追加到脚本的末尾,执行的时候直接定位到指定的行数去解压就可以了,复杂的还需要检查依赖的环境,设置变量等等,不过基本框架就是这样的。

posted on 2013-02-06 11:40  流川仙道  阅读(261)  评论(0编辑  收藏  举报

导航