Linux培训
达内IT学院

400-111-8989

Linux系统下编写shell脚本的10个建议

  • 发布:上善若水
  • 来源:码农有道(微信号:b497155298)
  • 时间:2018-04-11 15:46

很多使用Linux系统的小伙伴都知道,在Linux环境下工作 ,shell脚本的编写应该是一个必备的基本技能了,既然shell脚本这么重要那么小编就为大家准备了这篇10个写出高效可靠的 shell脚本的实用技巧,供大家参考。

1.在脚本中多写注释

这条建议不但适合于shell脚本,对于其它编程语言同样实用。这样做的好处是可以帮助他人或者你自己后面阅读脚本时能够迅速了解脚本的功能,便于维护。试想下,如果有一天你的主管给了你一堆没有注释的代码,你是不是很抓狂呢。

shell脚本中,注释一般以#开头,后面跟着是注释的内容。注释不可少,但是注释也不是越多越好,对于shell脚本,注释一般包括下面几个部分:

1#脚本的参数
2#脚本的用途
3#脚本的注意事项
4#脚本的写作时间,作者,版权等
5#各个函数前的说明注释6#一些较复杂的单行命令注释

2.脚本中有命令运行失败时退出脚本

如果脚本中某条命令运行失败,我们不应该让其继续运行,因为这样可能会影响脚本的其余部分,导致逻辑错误。逻辑错误一般又是很难定位的,与其这样,不如让其提前结束更早的找出脚本中的错误。可以用下面的命令设置在遇到命令失败时来退出脚本执行:

#如果命令运行失败让脚本退出执行
set-o errexit

#或
set-e

3.脚本中使用到未声明变量时退出脚本

脚本中使用到未声明的变量同样可能导致逻辑错误,可以用下面的命令设置脚本在使用到未声明的变量时退出执行:

#若有用未设置的变量即让脚本退出执行
set-o nounset

#或
set-u

4.使用双引号引用变量

当使用一个变量的值时,用双引号有助于防止由于空格导致单词分割开和由于识别和扩展了通配符而导致的不必要匹配,下面的例子说明了一切。

#!/bin/bash#若命令失败让脚本退出
set-o errexit

#若未设置的变量被使用让脚本退出
set-o nounset

echo"Names without double quotes"
echo
names="Tecmint FOSSMint Linusay"
fornamein$names; do echo"$name
done
echo
echo"Names with double quotes"
echo
fornamein"$names"; do echo"$name"
done
exit0

Linux系统

5.在脚本中多使用函数

同样,这条建议也适用其它编程语言,函数的使用使得代码更模块化,更可读和可重用;shell脚本中定义函数的语法如下所示:

function check_root()

    command1;    
    command2;
}

#或
check_root()
{    
    command1;    
    command2;
}

6.字符串比较时用=而不是==

为什么会有这个建议,原文并没有给出详细的说明,只是简单的提了句: == 是 = 的同义词,因此仅用个单个 = 来做字符串比较。不过在原文的后面有网友回答了,是因为==只适用于bash;POSIX形式是“=”,使用=更方便移植。

value1="#"
value2="#"
if["$value1"="$value2"]

7.用$(command)代替传统的`command`

这两种形式都可以用作命令替换,所谓命令替换是用这个命令的输出结果取代命令本身。这里建议用 $(command) 而不是反引号`command `来做命令代换。

//不建议做法
user=`echo "$UID"`

建议做法user=
$(echo"$UID")

8.用readonly声明静态变量

静态变量不会改变;它的值一旦在脚本中定义后就不能被修改,对于这类变量,在声明的时候应该用readonly去声明。

readonly passwd_file="/etc/passwd"
readonly group_file="/etc/group"

9.命名规范

由于在bash环境变量名字都是大写,因此建议自己定义的变量用小写字母命名,以防止命名冲突,同时命名时要做到顾名思义,你取的名字要有意义。

#而环境变量用大写命名,自定义变量用小写,
nikto_file="$HOME/Downloads/nikto-master"

10.对比较长的脚本进行调试

当你的脚本有成千上万行时,一旦脚本运行出错,排错是一件异常困难的事情;为了在脚本执行前更轻松地将问题定位出,需要进行一些调试,下面是一些指南来帮助你掌握调试的技巧。

How To Enable Shell Script Debugging Mode in Linux

How to Perform Syntax Checking Debugging Mode in Shell Scripts

How to Trace Execution of Commands in Shell Script with Shell Tracing

以上就是小编今天为大家分享的关于Linux系统下编写shell脚本的10个建议,对于Linux运维工程师来说,编写shell脚本是必备技能,希望小编今天分享的文章能够帮到你,祝你工作顺利。

想了解更多Linux信息欢迎关注达内Linux官网。

参考资料:本文主要内容来源于《10 Useful Tips for Writing Effective Bash Scripts in Linux》,再加上自己的一点理解而成。

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:检查建立安全的Linux服务器来提高Linux安全性(二)
下一篇:0基础如何学习Linux系统

学物联网工程好就业吗?

图像算法工程师发展前景

大数据运维工资一般多少?

运维工程师经常加班吗?

  • 扫码领取资料

    回复关键字:视频资料

    免费领取 达内课程视频学习资料

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省