免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 10098 | 回复: 29
打印 上一主题 下一主题

shell 脚本上包含压缩文件如何做 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-27 15:47 |只看该作者 |倒序浏览
我这有一个软件,安装是运行一个脚本,我看了一下这个脚本
-rwxr-xr-x 1 root root 117650973 May 17 04:37 dir5.20.3_coreservices_linux.sh
很大,里面包含了一些文件
__ARCHIVE_FOLLOWS__
****
****

不知道这样的脚本是怎么做的。哪位高手详解一下。
msn:jiangtao_rong@126.com

论坛徽章:
0
2 [报告]
发表于 2008-05-27 15:52 |只看该作者
你查查如何做run包,可能是做了个安装包

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
3 [报告]
发表于 2008-05-27 16:18 |只看该作者

  1. cat >test.sh <<\EOF
  2. #! /bin/bash
  3. sed '1,/^__ARCHIVE_FOLLOWS__/d' $0 >$$.tar.gz
  4. tar tzvf $$.tar.gz
  5. rm -f $$.tar.gz
  6. exit
  7. __ARCHIVE_FOLLOWS__
  8. EOF
  9. chmod +x test.sh
  10. echo this is a test >test
  11. tar -czf - test >>test.sh
  12. ./test.sh

复制代码

一个简单模拟

论坛徽章:
0
4 [报告]
发表于 2008-05-27 16:37 |只看该作者
cool

论坛徽章:
0
5 [报告]
发表于 2008-08-06 17:41 |只看该作者
原帖由 waker 于 2008-5-27 16:18 发表

cat >test.sh test
tar -czf - test >>test.sh
./test.sh


一个简单模拟

我测试屡屡失败呢?

tar没有z参数,稍微改动了下:

cat >test.sh <<EOF
#!/usr/bin/bash
sed '1,/^__ARCHIVE_FOLLOWS__/d' $0 >$$.tar.gz
gunzip $$.tar.gz
tar tvf $$.tar
rm -f $$.tar
exit
__ARCHIVE_FOLLOWS__
EOF
chmod +x test.sh
echo this is a test >test
gzip test
tar -cf - test.gz >>test.sh
./test.sh



却总是报错:


bash-2.03$ ./test.sh
不能打开bash

gunzip: 23748.tar.gz: unexpected end of file
tar: 23747.tar: 无此文件或目录

论坛徽章:
0
6 [报告]
发表于 2008-08-06 17:58 |只看该作者
你的bash是/usr/bin/bash?
把这部分放到脚本里面执行,否则$0就是bash,而不是test.sh
而且tar -cf - test.gz >>test.sh要改成tar -cf - test.gz|gzip >>test.sh

论坛徽章:
0
7 [报告]
发表于 2008-08-07 12:34 |只看该作者
原帖由 walkerxk 于 2008-8-6 17:58 发表
你的bash是/usr/bin/bash?
把这部分放到脚本里面执行,否则$0就是bash,而不是test.sh
而且tar -cf - test.gz >>test.sh要改成tar -cf - test.gz|gzip >>test.sh



which bash显示
/usr/bin/bash

我觉得
tar -cf - test.gz|gzip >>test.sh 啥意思呢?
对打包的压缩文件再做一次压缩,有必要吗?

论坛徽章:
0
8 [报告]
发表于 2008-08-07 12:48 |只看该作者
原帖由 welcome008 于 2008-8-7 12:34 发表



which bash显示
/usr/bin/bash

我觉得
tar -cf - test.gz|gzip >>test.sh 啥意思呢?
对打包的压缩文件再做一次压缩,有必要吗?

如果不做的话你要吧脚本里面相应的gunzip $$.tar.gz删掉,否则会出错,而且.tar.gz都要改成.tar

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
9 [报告]
发表于 2008-08-07 12:50 |只看该作者

回复 #5 welcome008 的帖子

tar.gz包是先打包后压缩,不是先压缩后打包

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
10 [报告]
发表于 2008-08-07 12:55 |只看该作者
另外,比较一下
cat >test.sh <<EOF
cat >test.sh <<\EOF
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP