首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类似于jsMin等人的Shell脚本缩小工具?

类似于jsMin等人的Shell脚本缩小工具?
EN

Stack Overflow用户
提问于 2011-08-23 22:15:49
回答 1查看 441关注 0票数 1

我想压缩一些shell代码,以便在闪存有限的嵌入式linux平台上部署

显然,您可以尝试使用正则表达式来搜索空格,但唯一安全的方法是使用完整的解析器。

有没有针对shell脚本语言的精简工具(类似于jsMin和YUI Compressor)?

我对ash shell特别感兴趣,但我接受bash :)

EN

回答 1

Stack Overflow用户

发布于 2011-08-24 02:10:44

因此,节省了大约28%。

代码语言:javascript
复制
#!/usr/bin/env perl
use strict;
use warnings;

foreach my $file (@ARGV)
{
    open my $fh, "<", $file or die "Failed to open $file";
    my $line = <>;
    print $line;
    while ($line = <>)
    {
        next if $line =~ m/^#/;
        next if $line =~ m/^\s*$/;
        $line =~ s/^\s+//;
        $line =~ s/\s+$//;
        print $line;
    }
    close $fh;
}

这将保持第一行(通常是shebang行,尽管我的许多脚本已经足够老了,并且无人照管了足够长的时间,所以它们使用:而不是shebang)保持不变。这不会试图去掉尾随注释(空格、散列、其他字符),但我并不倾向于使用它们。添加替换命令:

代码语言:javascript
复制
        $line =~ s/\s+#[^\\'"`]*$//;

从我的语料库中留下了275035个字符(节省了大约29%)。用'#!/bin/sh‘替换所有的第一行可以节省更多的时间。在大约700行中有多个连续的空格或制表符,但压缩它们所节省的额外空间是相当有限的(其中许多都在搜索不应该压缩的“空格或制表符”组合)。

显然,如果节省大约1/3的空间就足够了,那么这个脚本可能会有一些用处,尽管它是简单的。然而,减少更多的空间将是困难的,如果不运行严重的风险破坏您正在最小化的脚本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7162453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档