Shell 变量
Shell 变量
变量名
The name of a variable can contain only letters (a to z or A to Z), numbers ( 0 to 9) or the underscore character ( _).
By convention, Unix shell variables will have their names in UPPERCASE.
合法的变量
1 | |
非法变量
1 | |
定义变量
1 | |
例如:
1 | |
shell 允许变量存你想要的任何值, 例如
1 | |
获取变量的值
通过在变量前添加$来引用变量
1 | |
输出
1 | |
只读变量
在变量前添加readonly将变量标记为只读,只读变量不允许被修改。
1 | |
报错
1 | |
删除一个变量
使用unset命令删除一个变量,变量被删除后,无法访问该变量的值。
1 | |
例如
1 | |
NAME 被删除, 输出为空。
变量类型
本地变量
- 使用
local关键字修饰的变量 - 只能用在函数内部
- 如果与全局变量同名,在函数内部,会屏蔽同名的全局变量
- 函数的参数是
local的
- 使用
shell 全局变量
- 在 Shell 中定义的变量,默认就是全局变量。
- 在函数内部定义的变量,没有用
local关键字修饰,也是全局变量
环境变量
- 全局变量只在当前 Shell 进程中有效,对其它 Shell 进程和子进程都无效。如果使用
export命令将全局变量导出,那么它就在所有的子进程中也有效了,这称为“环境变量”。
- 全局变量只在当前 Shell 进程中有效,对其它 Shell 进程和子进程都无效。如果使用
在shell 函数中定义的变量也是全局变量
1 | |
输出结果:
1 | |
要想变量的作用域仅限于函数内部,可以在定义时加上local命令,此时该变量就成了局部变量。
1 | |
输出结果为空,表明变量 a 在函数外部无效,是一个局部变量。
Shell 变量
https://yxibng.github.io/2022/02/25/Shell/2022-02-25-Shell 变量/