使用Bash时的几点总结
作为一个天天与linux打交道,并以此为生的linux运维工程师,最常用的工具性语言恐怕就是shell了, 而对于大多数的linux和一些类unix而言,其默认的shell就是bash。使用bash一般有两种场景,一是直接使用命令,二是,将这些命令组合起来,加上逻辑判断、循环、加上异常文本处理工具、加上函数构成shell脚本。用于自动、快速的执行某些批量操作。
为达到某个目的,bash往往有多种实现方法,比如在脚本中 反引号 ` ` 与$() 是相同的, 这种特性提供方便的同时也为代码的复杂度和可读性带来一定的影响,bash没有所谓的规范,只有所谓不同的使用习惯,如下是我平时使用时的一些积累,同时也参考了许多优秀的博客,记录如下,目的呢就是单纯的与大家分享,毕竟互联网环境下就是互相分享,彼此借鉴,在原有的基础的创新,最重要的不是人云亦云,而是真正领悟之后的相互点评、思想碰撞。
1.添加注释
这个不用过多解释,无论哪种语言这甚至都是必须的,目的是增强可读性,节约他人和以后的自己熟悉脚本的时间。
2.构建一种一致的格式
我这里主要指的是缩进 1-- 使用空格(2个或者4个,我一般用4个)取代tab。 2--代码分层要明确,属于一级的要对其,这一点python做的很好,强制要求的。这样写出来的shell自己看着心情也不同。
3.编码习惯上的一些注意
这里纯属个人习惯,但如下这样做的好处是使代码风格更统一,目的还是提高可读性
1--使用花括号 { } 。 用花括号括起来所有的变量名。比如 ${name} 而不是 $name
2--计算表达式中用$() 代替反引号 `` 这样易于阅读。
4.比较变量的值时建议采用双引号将变量括起来。如下:
这样写的好处至少有: 当变量为空时依然可以执行。 当变量中有特殊字符时(接收用户输入的情况下)依然可以执行。
#!/bin/bash if [ ${name} == "wencheng" ];then echo "hello" fi #####推荐使用如下 #!/bin/bash if [ "${name}" == "wencheng" ];then echo "hello" fi #
5.异常退出时要使用异常退出代码 如: exit 500 。这样在此脚本被其他调用时能够更好的判断是否执行完成,如若错误也能判断错误类型。
6.尽量避免单行代码过长的问题。 这样在不同的终端,都能够正常的显示。
7.避免命令的复杂性,这个是仁者见仁智者见智的问题,有的时候你是发现不了自己代码的臃肿程度的。比如:
grep cut 等组合使用达到的效果就不如 awk 来的直接。
借用一个例子:
检索用户id为502的用户: (第三种会比较的高效)
#一。 cat /etc/passwd | grep 502 |cut -d: -f1 #二。 grep 502 /etc/passwd |awk -f":" '{print $1}' #三。 awk -f ":" '$3 == 502{print $1}' /etc/passwd
先总结这些,欢迎指正。
另外附上控制输出终端颜色的方法 : https://misc.flogisoft.com/bash/tip_colors_and_formatting
上一篇: 多线程-作业练习
推荐阅读
-
win10系统使用APMserv时提示80端口被占用的解决方法
-
在arcgis使用python脚本进行字段计算时是如何解决中文问题的
-
使用vue打包时vendor文件过大或者是app.js文件很大的问题
-
填充路径时使用的非零环绕规则
-
实现Nginx中使用PHP-FPM时记录PHP错误日志的配置方法
-
记一次在node.js中使用crypto的createCipheriv方法进行加密时所遇到的坑
-
android使用mysql的方法总结
-
C#在循环中使用Random时生成的随机数相同的解决办法
-
Winform中在使用VS+svn进行协同开发时添加引用时的相对路径和绝对路径的问题
-
想让你的手机网站更受欢迎吗?使用自助建站模板要注意这几点