文章目录


玩转shell-shell编写好习惯分享_运维

前言

这是本人自己总结的个人的编写 shell 的习惯。

不管是编写什么语言总要先立个规矩,没有规矩不成方圆嘛,下面我自己列出来我个人在写 shell 脚本时候的编写习惯,这样我自己看 shell 代码的时候就不会觉得很乱了

最后此篇博文以后会不断往其中增添新的内容

哪些编写习惯?



1.对于 grep 使用的建议:
grep 写正则时我个人建议尽量加引号,养成习惯,因为为的是与 sed 和 awk 命令保持一致,减少思维负担

grep -E '.+?'


2.对于 sed 使用的建议:
sed 中替换的时候我建议使用井号代替 /,因为写成斜杠的话,其中文本如果存在斜杠我们就需要转义,这样看起来很混乱,所以建议写成井号养成好习惯

sed -r 's#.+?#.#g'


3.对于 awk 使用的建议:
awk 本身是一门程序设计语言,建议语句间加空格隔开,满足程序设计语言的共同特性,分号后加上一个空格,if 或者 BEGIN 紧贴着后面的符号,-F 分隔符后面紧贴着双引号中的分隔符

awk 'NR==1 {print $1}'
awk -F":" '{print $0}'


4.关于管道符的建议:
我建议管道符号两边需要接上空格,我们细心点会发现,当我们输入文件未输完再按下 tab 键会自动补全,并且最后会多出一个空格,其实这个做法也非常有利于我们写管道符了,如果管道符两边以空格隔开也很助于我们将其与正则中的或者区分

less test.log | grep '404|500'


5.多个 sed 语句建议:
多条 sed 语句建议使用 -e 来处理,不用写多个 sed 了,显得美观一些,并且如果写在文本中建议要格式化,换行处理

sed -e '...' -e '...'


6.shell 中能用​​!​​取反,通常在条件语句时候用到,就没有必要用​​-z​​和​​-n​



7.​​if while for​​后面加一个空格,即使后面是​​(())​

if (())
while (())
for (())


8.字符串比较我们首推用​​[[]]​​,数字比较我们首推​​(())​



9.shell 语句尽量模仿 c 语言风格,比如语句末尾的分号



10.shell 语句中除了一些规范以外,以及一些地方必须要加空格,其他地方尽量稍加空格



11.诸如​​echo let printf​​语句后面加上双引号

echo "";
let "";
printf "";


12.优先使用​​let​​语句而不是​​(())​



13.尽量用​​$()​​取代​​``​​,因为反单引号容易被看错