前言
shell也是一种编程语言。这意味着它也有拥有许多同其他语言共同的特性,如变量、数据类型、控制结构等。本节介绍shell中变量的使用。
在我看来,shell中的变量可大致分为以下三种类型(个人观点,不喜勿喷)
- 普通变量
- 特殊变量
- shell变量
它们有何区别?请往下看
一、普通变量
普通变量一般指用户自定义的变量,一般以所要引用的数据的含义命名。
命名规则: 可由字母、数字、下划线组成,不能以数字开头。一般大写,=
号两端不能有空格。
实例: NAME='runner'
,即创建了一个值为runner
的字符串变量。
调用: $NAME
#在shell中,统一用$
加 变量名
的方式调用变量,不过更好的调用方法是 ${变量名}
只读变量: 可通过关键字 readonly
将一个自定义的变量指定为只读,不可修改。eg: readonly NAME
二、特殊变量
特殊二字,即指明了这些变量有特殊用途。在shell中,常用的特殊变量如下。
-
$n
n 为自然数
$0:脚本名称$1:第一个参数
$2:第二个参数
…
-
$#
统计传递给脚本的参数个数
-
$*
表示传递给脚本的所有参数,将所有参数作为一个整体,不可分割
-
$@
表示传递给脚本的所有参数,每个参数作为独立的个体
-
$?
上一个命令执行后的结果,如果为 0,表示执行结果为true,否则为false。【这在编写自动部署脚本的时候十分拥有,用以判断是否可进行下一步操作】
三、shell变量
在shell中,存在一些预定义或之后添加的变量,可通过以下方式查看及使用
[root@ct01 ~]# export | grep NAME #查找含有NAME的shell变量
declare -x HOSTNAME="ct01"
declare -x LOGNAME="root"
[root@ct01 ~]# echo $HOSTNAME #使用变量,也可以直接在脚本中使用
ct01