[总结]如何编写自解压脚本(脚本中嵌入二进制文件)

   今天接手新的模块开发时,发现他们给我的归档脚本中有很多乱码,但是也能正常执行。

    我上网查了下,发现他们是在shell脚本中嵌入二进制字符。这样就可以在运行脚本时将二进制代码导出成一个程序,再执行

    于是我决定扩展一下,写个自解压脚本,在此之前,我们先来看学习下uudecode/ uuencode命令。

    uuencode 将二进制文件进行编码,编码后的资料都以 begin 开始,以 end 作为结束。

    uudecode 将 uuencode 编码后的档案还原, uudecode 只会将 begin 与 end 标记之间的编码资料还原,程序会跳过标记以外的资料。


    示例:

     






     这句话是将/home/fesu/test1.tar包编码,并指定解码后生成的test2.tar文件存放到/home/fesu/target/目录下。
生成的文件名可以随意指定,解码存放目录也是可以随意指定的。 编码的内容重定向到 /home/fesu/test.txt中,这个txt文本
中的内容大致为:
  begin <模式> <指定的解码文件名> <数据> end
这段解码就比较简单,uudecode会根据test.txt中的begin到end块中的内容生成解码文件。解码文件就是uuencode 中指定解码的文件,即/home/fesu/target/test2.tar,test2.tar其实跟test1.tar是一样的。
接下来我们开始正题,编写自解压脚本extract.sh 然后我们用/bin/uuencode /home/fesu/test1.tar /home/fesu/target/test2.tar >> extract.sh 这样我们就将归档包嵌入到脚本中,做成了一个自解压脚本。
扩展: 通过以上方法,也可以在shell脚本中嵌入其他二进制文件,做成自执行文件。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值