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 变量/