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=”www.linuxmi.com 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代码。

发表评论

电子邮件地址不会被公开。 必填项已用*标注