shell脚本给运维工做带了很大的方便,但其中也有一些怪异的语法规则,老是容易给人挖坑。程序员
- 对空格的使用
- shell中另外一个怪异的地方是作一样一件事能够有好几种表达方式:
- 好比变量引用,能够是$myvar,也能够是${myvar},从避免代码看起来混乱的角度看,应该强制使用大括号将变量与其余字符进行分隔比较合理。能够对比下下面两种状况,哪种看起来更舒服,更容易区分哪里是变量哪里是字符串字面量。
- echo "there is "$num1" person and "$num2" room"
- echo "there is ${num1} person and ${num2} room"
- 好比循环,能够用for,也能够用while,还有until,实际上until用处并不大,通常都能用while代替掉,为了一个不多用到的状况设计一个专门的语法是不太值得的。
- 又好比函数定义中,如是不加return语句,就返回最后一条命令运行结果,这实在没有必要,这种节省return的状况反而容易把人给绕晕,看代码的人得分析一番才搞得清这个函数要返回的倒底是什么。
- 还好比特殊变量:$@和$*,都表示全部参数,虽然有一些小小区别,可是为了这一点小区别设计两个语法实在有点小题大做了!