Posted inlinux shell bash 工具
十四 使用 shc 编译 linux shell 脚本为可执行文件
【动机】
shc
(Shell Compiler)是一个工具,用于将shell脚本编译成二进制执行文件,这样可以防止源代码泄露,并提高脚本的执行效率. 假设存在两个文件, 结构是:
shc
(Shell Compiler)是一个工具,用于将shell脚本编译成二进制执行文件,这样可以防止源代码泄露,并提高脚本的执行效率. 假设存在两个文件, 结构是:
常见的需求是为了减小脚本体积而去除脚本注释, 近日发现对于一些复杂的脚本, 使用 shc 工具编译脚本为可执行文件, 在去除注释前编译失败, 去除注释后能顺利编译. 如何分离瘦身脚本, 以便可用于任何 linux shell 脚本?
还记得在日志记录和动态函数一篇中, 曾经提到的动态实现? 基本思路是, 先建立动态日志函数的”根”函数 logx, 再在 command_not_found_handle 函数中, 将不存在的日志函数, 例如 logx_ok, 剥离出 ok 作为参数, 重定向到 logx 处理. 这样的方案看上去挺优雅, 但是至少存在以下缺点:
从上篇综合进度条中可以看到, 如果每次运行任务(命令或函数), 都需要进行逐个进度条, 变换符号, 耗时函数的调用, 然后再运行任务, 则不可谓不繁. 如何解决?
经常在线安装软件包的朋友, 一定对下载/安装时的进度条印象深刻. 本节起, 一共使用四节的篇幅, 与大家分享几种进度条的制作与使用.
上一篇改进的菜单(一), 主要存在的问题是, 如果菜单项和(或)值包含单引号, 得到的结果可能不是预期. 本篇尝试解决.
上一篇的简易菜单, 至少存在以下两个明显缺点:
linux shell 脚本常见的调试手法如下: