变量

引用变量用$

系统变量

变量作用
$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​:脚本