引用变量用$
系统变量
变量 | 作用 |
---|---|
$USER | 当前用户的用户名 |
$HOME | 当前用户的家目录 |
$PATH | 包含可执行文件的目录列表,用冒号分隔 |
$PWD | 当前工作目录的路径 |
$SHELL | 当前正在使用的 Shell 的路径 |
$? | 表示上一个命令的退出状态 |
$$ | 表示当前 Shell 进程的 PID(进程 ID) |
$# | 表示传递给脚本的位置参数的数量 |
$1, $2, ... | 用于访问传递给脚本的参数 |
定义变量
直接定义比如
A=100
$100
就可以引用
释放变量
unset 变量
静态变量
定义变量前加readonly
不可以被释放
定义名称规则
字母,下划线,数字组成,不能以数字开头 等号两侧不能有空格 变量名称不能为大写
命令
“=$()
例如
A=ls -l
等于 A=$(ls -l)
限定范围
declare
在函数内默认声明局部变量,但可用 -g
声明全局变量
-
-r
:将变量声明为只读 -
-i
:将变量声明为整数 -
-a
:声明一个索引数组 -
-A
:声明一个关联数组(有时也称为哈希表或字典) -
-f
:列出所有函数名或者显示指定函数的定义。 -
-x
:通过环境导出变量。这使得在子进程中也能访问这些变量。 -
-g
:在函数内部强制声明全局变量。如果不使用-g
,在函数内部使用declare
默认声明的是局部变量。
local
总是声明局部变量。declare
:脚本