[杂记]是否有必要精通unix的shell语法?

今天我中断了bash的学习。

第一个原因是,《高级bash脚本编程指南》这本书够厚,细节够多,我啃起来很吃力。但这并不是说它很深奥,这本书很好,只是太过纠结于细节。如果你能认真读完并掌握此书,肯定算得上是bash老手了,说精通也不为过。

更主要的原因是,我深刻的感受到一点,bash脚本的设计思路中有一个问题,即,它更倾向于将功能集成在语言中,它选择将常用的库功能实现为特殊符号的组合,而非将常用库组织为函数和参数。这种选择带来的好处是,对于精通bash语法的老手来说,他们可以用有限几个特殊字符的组合来代替编写复杂的函数调用,提高了编辑效率。但显然,这样一堆奇怪文字组成的代码会给对shell语法不熟的其他项目成员带来极大的负担,甚至编写者本人回头来维护这堆代码时也会因为忘记部分特殊字符的功能而遭遇很大困难。完整掌握bash脚本需要记忆的特殊规则太多!何况本身各种shell实现就因复杂性的缘故深陷各种不一致性的问题中。难怪会有不少人觉得shell语法脏乱。

总之,未了不至于造成将来和其他项目伙伴的沟通障碍,我决定对bash浅尝辄止啦!自己也不用去记那些乱七八糟的规则,何乐而不为!

 

恩,开始学python吧!python那崇尚严整的代码风格无时不刻都在勾引我!只可惜用python后肯定会冷落lua。

现在设想的编程时语言选择顺序:

windows下:1. C#:VS提供了函数/参数补全后,C#具有最高的编码效率;.Net库提供了Windows下最强的系统操纵能力;C#作为最先进的静态语言之一,具有各种语法便利,加上闪电般的编译速度,实在是Windows下普通编程任务都不二选择!2.python,万能的脚本语言,统一的编程风格便于组织大型项目。3.需要嵌入式语言时,用lua。4.需要效率的算法或关键代码,用C/C++。5.日常文本处理,vim和unix tools。

linux下:基本同windows,只是去掉C#;日常还可以写shell。

posted @ 2012-01-02 23:23  Scan.  阅读(928)  评论(0编辑  收藏  举报