简介
这篇来介绍 shell 中变量
变量
Shell 可以设置变量,
如系统默认的变量
- SHELL:当前用户的解释器
- USER:当前用户
- HOME:当前用户的家目录
查看这些变量的值只需要 echo $变量名
即可
例如:
|
|
输出结果:
|
|
系统变量
系统变量,顾名思义,就是系统自带的变量
除了已经介绍过的SHELL、USER、HOME
等外,还有如
|
|
使用env
命令查看当前系统定义的所有环境变量
使用set
命令显示所有本地定义的 Shell 变量
自定义变量
除了系统自带的系统变量以外,用户还可以自定义属于自己的变量
基本语法:
- 定义变量:
变量名=变量值
,等号两边不能有空格 - 撤销变量:
unset 变量名
- 静态变量:
readonly 变量名
,静态变量不可撤销 - 全局变量:
export 变量名
变量命名规则
- 必须以字母(a-z、A-Z)或下划线(_)开头
- 区分大小写,环境变量命名建议大写
- 不能是内置命令或关键字
- 长度不能超过 99 个字符
- 不能包含空格或其他特殊字符
变量小贴士
- 变量默认类型都是字符串类型,无法直接进行数值运算
- 变量的值如果有空格,需要使用双引号或单引号括起来
特殊变量
除了系统变量,自定义变量,还有一些特殊的变量,它们经常在 shell 脚本中使用
$n
n
代表是数字,如 0、1、2、3,…,在大于 9 后,需要用 {}
包裹,如 ${10}
$0
表示的是当前脚本的名称或路径
如:
example.sh
|
|
执行脚本
|
|
输出内容
|
|
脚本 2
|
|
执行脚本
|
|
输出结果
|
|
这里第 4 个参数,没有赋予,结果也没有显示
$#
$#
:获取所有输入参数的个数
|
|
运行
|
|
运行结果
|
|
$*
、$@
$*
:代表命令行中所有的参数,把所有的参数看成一个整体$@
:代表命令行中所有的参数,把每个参数区分对待
例:
example4.sh
|
|
运行
|
|
运行结果
|
|
$?
$?
:返回上一次执行结果的状态,如果为 0,表示正确执行,如果非 0,表示不正确执行
例如:
example5.sh
|
|
运行
|
|
运行结果
|
|
结果解释
0
:表示前一个命令echo '----- $? -----'
运行成功了127
:因为num = 10
变量赋值之间有空格,失败了,所以后面的echo $?
输出了一个非 0 数字