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 脚本环境中声明变量名时要牢记的规则。