=Start=
缘由:
之前有碰到过将文件嵌入shell脚本的情况,但没有细究,最近看到一篇文章的时候想起来了,就顺着学习一下,说不定以后用得着。
参考解答:
#!/bin/bash PATH=/usr/bin:/bin umask 022 md5=0ee8c59a12d99fdfd1e95bfda6938e86 pre_install() { echo "准备安装环境(略)..." mkdir ./install.tmp.$$ } extract() { echo "从脚本中提取文件" line_number=`awk '/^__BIN_FILE_BEGIN__/ {print NR + 1; exit 0; }' "$0"` tail -n +$line_number "$0" >./install.tmp.$$/extract.$$ # tail -n +$line_number "$0" >./install.tmp.$$/extract_tmp.$$ # base64 -d ./install.tmp.$$/extract_tmp.$$ >./install.tmp.$$/extract.$$ } check_sum() { if [ -x /usr/bin/md5sum ] && [ -f "install.tmp.$$/extract.$$" ]; then echo "正在检查md5......" sum_tmp=($(/usr/bin/md5sum install.tmp.$$/extract.$$)) if [ $sum_tmp != $md5 ]; then echo "文件md5不一致,请检查文件完整性,退出!" exit 1 fi else echo "找不到md5sum命令或文件未提取,退出" exit 1 fi } install() { echo "安装中(略)..." } post_install() { echo "配置中(略)..." echo "清理临时文件" rm -rf install.tmp.$$ } main() { pre_install extract check_sum install post_install exit 0 } main __BIN_FILE_BEGIN__ #这行下面接二进制文件 # ......
参考链接:
- 在shell脚本中嵌入文件
- 在shell中嵌入二进制文件 #详细
- shell脚本中嵌入二进制文件
- [总结]如何编写自解压脚本(脚本中嵌入二进制文件)
- 另:如何在PowerShell脚本中嵌入EXE文件?
=END=
《“在shell脚本中嵌入文件”》 有 1 条评论
【shell】使用shc工具加密Shell脚本
`
shc是一个脚本编译工具, 使用RC4加密算法, 它能够把shell程序转换成二进制可执行文件(支持静态链接和动态链接)。
`
http://vinc.top/2017/03/15/%E3%80%90shell%E3%80%91%E4%BD%BF%E7%94%A8shc%E5%B7%A5%E5%85%B7%E5%8A%A0%E5%AF%86shell%E8%84%9A%E6%9C%AC/
https://github.com/neurobin/shc
https://neurobin.org/projects/softwares/unix/shc/
https://neurobin.org/projects/softwares/unix/shc/man.html