跳转至

简介

本文中,我们会主要讨论两个部分:

  • 普通变量
  • 定义变量
  • 删除变量
  • 变量的访问
  • shell脚本中的特殊变量

shell脚本中,特殊变量是指内置的一些变量名称,这些变量有特定的意义,除此以外, 我们定义的其他变量都是普通变量。

普通变量

定义变量

在shell脚本中,定义变量的语法格式如下:

variable_name=variable_value

在这里有几点需要注意:

  • "variable_name","=""variable_value"之间不存在任何空间
  • 变量名一般使用纯大写字母
#!/bin/sh
#定义两个变量并赋值
COUNTRY="China"
NAME="kai"

删除变量

当我们定义变量之后,我们也可以删除相应的变量,在删除相应的变量后,当我们再次引用该变量的时候, 该变量的值变为空。

删除变量的语法:

unset variable_name

以下的例程中,我们首先定义一个变量,然后在删除改变量:

#!/bin/sh
COUNTRY="china"
#该语法为变量访问,后续进行介绍
echo $COUNTRY 
unset COUNTRY
echo $COUNTRY

变量访问

为了访问脚本中定义变量的值,需要在变量名前使用$符号。

#!/bin/sh

NAME="kai.zhou"
# 直接访问变量
# 输出值为 kai.zhou
echo $NAME

# 变量的拼接
# 输出值为 hello_kai.zhou
echo "hello_${NAME}"

shell脚本中的特殊变量

变量名称 变量含义
$0 目前脚本名称
$n n的值为(1...n), $1代表第一个参数, $2第二个参数...
$# 传入的参数总数量
$? 上次执行的命令的返回值
$* 所有参数一起被双引号包围
$@ 每个参数单独被双引号包围
... ...
#!/bin/sh
# variable.sh
echo "The filename of current script: $0"
echo "The first parameter: $1"
echo "The second parameter: $2"
echo "The number of argument supplied to script: $#"
echo "The exit status of the last command: $?"
echo "All argument are double quoted: $*"
echo "All arguments are individually double quoted: $@"
# run variable.sh
$ ./variable.sh hello world