帮忙看看如何写一个 bash 脚本 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ioiioi
V2EX    问与答

帮忙看看如何写一个 bash 脚本

  •  
  •   ioiioi 2014 年 5 月 16 日 3576 次点击
    这是一个创建于 4258 天前的主题,其中的信息可能已经有所发展或是发生改变。
    egrep -v '(#|^\s*$)' config

    通过这条命令,可以将config文件中的注释行消掉,只显示有效行。
    但我不想每次都输入egrep xxx file.config这么复杂,我该如何写一个脚本,可以实现上述需求,外加上实现类似less的功能,即当超过2页时,允许用户通过空格来翻页。
    10 条回复    2014-05-16 13:28:34 +08:00
    jsonline
        1
    jsonline  
       2014 年 5 月 16 日
    你干脆用 python 吧。普通开发者不要学 bash 了
    ivvei
        2
    ivvei  
       2014 年 5 月 16 日
    alias viewcOnfig="egrep -v '(#|^\s*$)' config|less"
    ioiioi
        3
    ioiioi  
    OP
       2014 年 5 月 16 日
    @ivvei

    config是一个变量,可以是任何的一个配置文件。这么写不行吧,另外,直接加| less没用。
    ioiioi
        4
    ioiioi  
    OP
       2014 年 5 月 16 日
    @jsonline
    我只不过是个网络工程师,bash已经够我用了。
    WDsUO7HnS2Na1DFC
        5
    WDsUO7HnS2Na1DFC  
       2014 年 5 月 16 日
    #!/bin/bash
    egrep -v '(#|^\s*$)' $1 | less
    superbear
        6
    superbear  
       2014 年 5 月 16 日
    将变量作为参数传入就可以了,egrep -v xxx file.config | xargs less 试试
    Sunyanzi
        7
    Sunyanzi  
       2014 年 5 月 6 日
    @ioiioi 直接用 alias 为何不行 ..?

    以及如果只是想要空格翻页的话 ... 用 more 就好了 ...

    alias cfg="grep -Ev '(#|^\s*$)' $1|more"
    ioiioi
        8
    ioiioi  
    OP
       2014 年 5 月 16 日
    @Sunyanzi, @superbear, @zhsso
    没用呀,兄弟们。
    不管是在./bashrc写入
    alias viewcOnfig=""

    还是做成脚本,
    #!/bin/bash
    egrep -v '(#|^\s*$)' $1 | less

    viewconfig config没办法清除注释行,而且less、more、xargs less没法做到空格翻页,需要先ctrl+c
    Sunyanzi
        9
    Sunyanzi  
       2014 年 5 月 16 日
    @ioiioi 用的是什么 Linux ..? 什么版本的 Bash ..?
    ioiioi
        10
    ioiioi  
    OP
       2014 年 5 月 16 日
    centos 6.5

    [root@fzgw sites-enabled]# bash --version
    GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2712 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 03:36 PVG 11:36 LAX 19:36 JFK 22:36
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86