来自:

bash脚本是在Linux上执行和自动化任务最简单的方法。它们快速、安全、可靠。

在这篇文章中,我们将看到创建脚本时的最佳实践法则,或者更确切地说,如何正确地编写bash脚本,使它可以能理解,最重要的是,可重复使用。

如何正确编写bash脚本

我们提供了任何bash开发人员都应该遵循的10条建议。

记得添加注释

注释有助于理解脚本开发,并使希望继续或改进脚本的其他开发人员更容易完成任务。请记住,它们是指示性的,为了避免执行如何写脚本,它们必须被注释(字符#)。

在Bash脚本中添加注释可以节省以后查看代码时的大量时间和精力,假设您要更改几个月或几年前编写的脚本。除非您添加注释,否则您将不记得为什么编写了这些复杂的代码。

单行注释:

# The script by linuxmi.com, …..

例子:

“#”符号用于在bash脚本中添加单行注释。创建一个名为“ linuxmi.com.sh”的新文件,并添加以下带有单行注释的脚本。

#!/bin/bash

# 两个数值相加

((sum=17+20))

#打印结果

echo $sum

多行注释:

在bash中可以以各种方式使用多行注释。下面的示例显示了一种简单的方法。在这里,’:’和” ‘ “符号用于在bash脚本中添加多行注释。下面的脚本将计算7×9的积。

#!/bin/bash

: ‘

下面是两个数的相乘的积

这里是7乘9

((area=7*9))

echo $area

发现错误时退出脚本

Bash非常强大,有时当出现错误时,它能够继续运行。您不应该允许这样做,为了解决这个问题,我们使用了“errexit”的缩写选项。

# The script by linuxmi.com

set -e

当bash使用未声明的变量时退出脚本

有时bash可能会尝试运行未声明的变量,这可能会导致脚本最终结果的异常运行。要退出脚本,我们使用缩写的“nounset”选项。

# The script by linuxmi.com

set -u

对变量的引用必须带有双引号

当我们在引用变量时必须使用双引号,我们避免了单词的划分和空格。

#!/bin/bash

# The script by linuxmi.com

set -e

set -u

echo “我是Linux迷”

echo

names=”Linux迷”

for name in $names; do

echo “$name”

done

echo

echo “双引号输出”

echo

for name in “$names”; do

echo “$name”

done

exit 0

输出如下图:

使用函数

这是新程序员的一个主要弱项。习惯使用函数,使用时直接调用函数名,这样的脚本好处:模块化,代码可读性强,扩展性方便,更容易阅读。

function check_linuxmi(){

命令-1;

命令-2;

或者

check_linuxmi(){ /function 也可以不写

命令-1;

c命令-2;

如果您在一行中生成代码,不要忘记完成。

check_linuxmi(){ 命令-1; 命令-2; }

使用$而不是反引号

要替换命令,请使用$符号而不是反引号。

user=`echo “$UID”`

user=$(echo “$UID”)

使用大写字母表示环境变量

对于环境变量,您应该使用大写字母,而对于自定义变量,您应该使用小写字母。通过这种实践,您将避免变量之间的许多冲突。

mi_linux=”$HOME/linuxmi/www.linuxmi.com/linuxmi.sh”

perl “$mi_linux” -h “$1”

在静态变量中使用readonly

一旦在脚本中定义了静态变量,就不应该修改它们,所以我们将它们设置为只读模式。

readonly hostname_file=”/etc/hostname”

readonly localtime_file=”/etc/localtime”

readonly network_file=”/etc/network”

调试代码

如果脚本只有几行如何写脚本,则不需要,但是如果您编写了数百行bash脚本,则必须在将其投入生产之前对其进行调试。在下一篇文章中,我们将看到如何调试bash代码。

…END…

发表回复

后才能评论

本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。

最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或联络我们。

对于会员专享、整站源码、程序插件、网站模板、网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。

如果您已经成功付款但是网站没有弹出成功提示,请联系站长提供付款信息为您处理

源码素材属于虚拟商品,具有可复制性,可传播性,一旦授予,不接受任何形式的退款、换货要求。请您在购买获取之前确认好 是您所需要的资源