Bash脚本15分钟进阶教程

2014-11-23 23:41:55 · 作者: · 浏览: 19

这里的技术技巧最初是来自谷歌的“Testing on the Toilet” (TOTT)。这里是一个修订和扩增版本。



我的所有bash脚本都以下面几句为开场白:


这样做会避免两种常见的问题:


需要注意的是,有些Linux命令的某些参数可以强制忽略发生的错误,例如“mkdir -p” 和 “rm -f”。


还要注意的是,在“errexit”模式下,虽然能有效的捕捉错误,但并不能捕捉全部失败的命令,在某些情况下,一些失败的命令是无法检测到的。(更多细节请参考这个帖子。)


在bash里你可以定义函数,它们就跟其它命令一样,可以随意的使用;它们能让你的脚本更具可读性:


还有一些例子:


尽可能的把你的bash代码移入到函数里,仅把全局变量、常量和对“main”调用的语句放在最外层。


Bash里可以对变量进行有限的注解。最重要的两个注解是:


这样,你可以将一个以前不是只读变量的变量声明成只读变量:


尽量对你bash脚本里的所有变量使用local或readonly进行注解。


反单引号很难看,在有些字体里跟正单引号很相似。$()能够内嵌使用,而且避免了转义符的麻烦。


使用[[]]能避免像异常的文件扩展名之类的问题,而且能带来很多语法上的改进,而且还增加了很多新功能:


单中括号:


双中括号