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

2014 年 5 月 16 日
 ioiioi
egrep -v '(#|^\s*$)' config

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

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

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

alias cfg="grep -Ev '(#|^\s*$)' $1|more"
ioiioi
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
2014 年 5 月 16 日
@ioiioi 用的是什么 Linux ..? 什么版本的 Bash ..?
ioiioi
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)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/112767

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX