V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
ioiioi
V2EX  ›  问与答

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

  •  
  •   ioiioi · 2014-05-16 00:19:08 +08:00 · 3239 次点击
    这是一个创建于 3876 天前的主题,其中的信息可能已经有所发展或是发生改变。
    egrep -v '(#|^\s*$)' config

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

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

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

    alias cfg="grep -Ev '(#|^\s*$)' $1|more"
    ioiioi
        8
    ioiioi  
    OP
       2014-05-16 10:27:58 +08:00
    @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-05-16 11:02:15 +08:00
    @ioiioi 用的是什么 Linux ..? 什么版本的 Bash ..?
    ioiioi
        10
    ioiioi  
    OP
       2014-05-16 13:28:34 +08:00
    centos 6.5

    [root@fzgw sites-enabled]# bash --version
    GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2508 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 15:53 · PVG 23:53 · LAX 07:53 · JFK 10:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.