1
ahu 2015-12-26 21:59:41 +08:00
赞一个,收藏了
|
2
imWBB 2015-12-26 22:08:37 +08:00 via iPhone
收藏。
|
3
xufang 2015-12-26 22:30:24 +08:00
赞一个。不过楼主的 bash 的风格需要进一步“美化”。
|
5
KentY 2015-12-26 22:52:12 +08:00
不知道是不是有点挑剔了, 打开代码看了下, 很多例如:
echo|sed|cut|sed|cut.... grep|sed|sed|cut|cut... grep|sed|cut|cut.... .... 这些真有点眼疼.. 建议看一下 awk, 会对你这个脚本有挺大帮助. |
6
crowds 2015-12-26 22:59:23 +08:00
shell 代码超过了 100 行
这说明了什么? |
7
neilp OP @KentY 谢指点. awk 的确不会, 以后再改善吧. 比较喜欢简单的事情简单做. make it work 比较重要. 何必在乎有什么方式呢.
|
9
KentY 2015-12-26 23:07:56 +08:00 2
@neilp 我不是强调 awk 的方式.
你那一串 pipe, 一下就 5,6 个进程, 而且你的代码里这样情况很多. 一般 grep 和 sed/awk 一起用都是 quick and dirty 的方式. 当然, 你可以说, 我把全部代码中启动 100 个进程,简化到 20 个, 对我这个程序来说性能没什么显著提升. 可是作为咱们搞技术, 如果知道一种方法是最优的, 却选择不优的(我这里不说是最差的), 是态度的懒惰, 不是技术的问题. 特别是, 这个选择并不提高多少开发成本. 当然, 你要学习 awk, 这是成本. 但我觉得 awk 作为 shellscript 编写是必须会的之一. 不说掌握多高深, 但必须会. my 2 cents |
10
crowds 2015-12-26 23:08:58 +08:00
可以参看 Google code style ( https://google-styleguide.googlecode.com/svn/trunk/shell.xml )里一段:
If you find you need to use arrays for anything more than assignment of ${PIPESTATUS}, you should use Python. - If you are writing a script that is more than 100 lines long, you should probably be writing it in Python instead. Bear in mind that scripts grow. Rewrite your script in another language early to avoid a time-consuming rewrite at a later date. - 如果有复杂的的对象,请使用 Python ;- 如果写了超过 100 行的 shell 脚本,考虑使用 Python 重写。 |
11
zho6 2015-12-26 23:12:51 +08:00
收藏了
562 行的 shell 费心的工作 感谢无私的分享 :-) |
12
KentY 2015-12-26 23:13:34 +08:00
@crowds 恕我直言, 我觉得这太教条了. 你可以搜索一下你电脑里的 shellscript, 超过 100 行的有多少, 他们又有多少会转到 python.
而且这毕竟是 google 他们自己的 convention, 虽然 google 对软件开发行业推动很大, 但不能这么教条我觉得. |
15
aheadlead 2015-12-26 23:17:44 +08:00
|
16
jings 2015-12-26 23:17:59 +08:00 via Android
你依赖 linux 卒
|
17
xufang 2015-12-26 23:19:00 +08:00
|
18
guonning 2015-12-26 23:19:53 +08:00 via Android
能用,好用,而且还分享,才是最重要的
|
19
KentY 2015-12-26 23:20:50 +08:00
@aheadlead
我完全同意 shellscript 长了调试, 修改, 维护非常头疼. shellscript 的强项本来也不是实现特别复杂的功能, 甚至编写应用程序.我没否认 google 的说法, 我只是说纠结于 100 行有点没必要. |
20
crowds 2015-12-26 23:28:18 +08:00
|
22
winooxx 2015-12-27 00:01:52 +08:00
非常赞,收藏了
|
23
Evovil 2015-12-27 01:06:20 +08:00
赞 学习了
|
25
tennix 2015-12-27 10:24:15 +08:00
Shell Script 长了可维护性的确是个问题,但是只用 Shell 和 basic unix tools 实现的脚本,移植性是最好的, FreeBSD 上面有好多第三方的包管理工具,有些会标称只依赖基本系统,有些依赖 ruby/python/perl/php 之类的,系统管理员可能更倾向于安装只依赖基本系统的,一来是因为 R3P 之类的并不是 FreeBSD 官方维护的,另外这些第三方脚本语言对版本依赖较强,版本不对很容易出问题,而且这些语言本身比基本系统里面的工具升级更频繁。
所以 Shell Script 和 R3P 各有优缺点,关键还是得看作者自己的取舍,如果 LZ 觉得就是要不依赖其它脚本语言,那么无视那些人对你的指责就好了,如果可维护性对你来说更重要,那么就按这些人说的,换成 R3P 中的 python 重新实现 |
26
zingl 2015-12-27 13:24:37 +08:00 1
|
27
hqs123 2015-12-30 08:42:32 +08:00
不明觉厉,学习下。
|