📜  Shell 脚本 - 命名变量名称的规则

📅  最后修改于: 2022-05-13 01:57:30.425000             🧑  作者: Mango

Shell 脚本 - 命名变量名称的规则

变量在任何脚本或程序中都非常重要,因此我们需要了解命名这些变量的约定。在为 Shell 脚本中的变量命名时,需要牢记某些规则和标准。在本文中,我们将讨论并列出在 Shell/Bash 脚本中声明变量名的所有规则和约定。

规则 1:变量名可以包含字母、数字和下划线

变量名称可以是字母数字,即字母和数字以及下划线。您可以在名称中使用小写或大写字母。我们可以在变量名的任何位置使用下划线字符。

例如:

变量 var_name 有一个下划线和小写字符。变量 X2 有一个大写字符和数字。最后,最后一个变量有大写和小写字符、数字和下划线。

注意:不要使用 _ 作为变量名,因为当您尝试使用 $_ 访问变量 _ 时,它会反过来给出错误,因为它是用于访问最后一个命令的大参数的保留命令。

规则 2:赋值运算符(=) 的两侧不应有空格

变量名后面不应有赋值运算符两侧的任何空格。如果在赋值运算符之前或之后有任何空格,shell 解释器可能会给出关于变量名本身就是一个命令的错误消息。

例如:

在以下情况下,变量赋值被认为是非法的:

name = "John"
name= "John"
name ="John"

在 shell 脚本中分配变量的正确方法是在赋值运算符(=) 的任何一侧都没有任何空格,如下所示:

name="John"

规则 3:变量名不能有特殊字符

除了第一条规则中讨论的下划线外,变量名不能有任何特殊字符。由于 shell 脚本使用某些特殊字符来执行某些操作任务,例如 $ 用于访问变量字面量值,& 作为 and运算符* 和 # 作为数组/字符串提取器等等。因此,不可能在 shell 脚本中的变量名中使用任何特殊字符。

规则 4:变量名的第一个字符不能是数字

虽然我们可以在变量名中使用数字,但唯一的例外是当数字是变量名中的第一个字符时。因此,除变量名的第一个字符外,任何位置都对数字有效。

以下是非法变量名称,因为它们的第一个字符是数字。

2X
1st_name
6_gate

规则 5:变量名不能是保留字

使用保留关键字(如 if、else、while、for、until、case 等)作为变量名不是一个好习惯。尽管它没有给出任何错误,但它仍然是一种不好的做法,并且很容易破坏 shell 脚本的可读性并在某些情况下导致某些错误。

shell/bash 脚本中的保留字如下:

if
elif
else
then
while
do
done
for
until
case
esac
continue 
break
function

尽量避免使用它作为变量名。

规则 6:变量名之间不能有空格

我们不能在变量名之间有空格,例如

first name="John"

这将产生一个错误,因为 shell 解释器将首先将该单词视为命令并返回错误。因此,我们需要避免在变量名之间使用空格,我们可以使用 _ 来创建多字变量名以提高可读性。

因此,这些是在 shell 脚本环境中声明变量名时要牢记的规则。