文章目录
前言
这是本人自己总结的个人的编写 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.尽量用$()
取代``
,因为反单引号容易被看错