shell变量的作用空间是什么
2023-07-06
在shell脚本中定义的变量仅在脚本中有效,但使用如下的一些命令可以改变其作用域或属性:
①export [option] [name[=value]]
– 表明选项结束,所有后续参数都是实参。
-f 表明在”名-值”对中的名字是函数名。
-n 把全局变量转换成局部变量,即命名的变量不在传给子shell。
-p 显示全局变量列表(全局变量,即在子shell中也有效的变量)。
缺省 把变量定义为全局变量
注:全局变量,在子shell中也有效的变量
局部变量,只在shell脚本中有效的变量
②let expression
用于求整型表达式的值,如表达式中有空隔,则必须用双引号把表达式括起来,例如: let count=1+2
③local [name[=value]]
用于创建不能传给子shell的变量,该命令仅在过程内部有效;如local后不跟参数,那么在当前已定义的局部变量列表就送往标准输出显示。
④readonly [option][name[=value]]
用于显示或则设置只读变量和函数,如readonly后不跟参数,则在案标准输出上显示已定义的只读变量和函数.
– 表明选项结束.所有后续参数都是实参
-f 创建只读函数
⑤unset [option] name [name…]
用于取消变量和函数的定义(即删除变量),但PATH、IFS、PPID、PS1、PS2、UID、EUID等变量不能删除。