变量类型:
数据存储格式、存储空间大小、参与运算种类:
字符型
数值型:整形、浮点型
强类型:定义变量时必须指定类型、参与运算必须符合类型要求。
弱类型:无需指定类型,默认均为字符型,参与运算会自动进行隐式类型转换。
bash中的变量的种类:
根据变量的生效范围等标准:
本地变量:生效范围为当前shell进程:对当前shell之外的其他shell进程,包括当前shell的子shell进程均无效。
环境变量:生效范围为当前shell进程及其子进程。
局部变量:生效范围为当前shell进程中某代码片段(通常指函数)
位置变量:$1,$2,……来表示,用于让脚本在脚本代码中调用通过命令行传递给它的参数
特殊变量:$?,$0,$*,$@,$#
本地变量:
变量赋值:name=‘value’
可以直接引用:
value:
(1)可以使直接字符串:name=“username”
(2)变量引用:name=“$username”
(3)命令引用:name=`COMMAND`,name=$(COMMAND)
变量引用:${name},$name
"":弱引用,其中的变量引用会被替换为变量值
'' :强引用,其中的变量引用不会被替换为变量值,而保留原字符串
显示已定义的所有变量:set
销毁变量 : unset name
环境变量:
变量声明、赋值:
export name=VALUE
declare -x name=VALUE
变量引用:$name,${name}
显示所有环境变量:
export env printenv
销毁:unset name
bash中有许多内检的环境变量:PATH、SHELL、UID、HISTSIZE、HOME、PWD、OLD、HISTFILE、PS1
变量命名法则:
1、不能使程序中的保留字,例如if、for;
2、只能使用数字、字母及下划线,且不能以数字开头;
3、见名知意,通俗易懂。
只读变量:
readonly name
declare -r name
位置变量:
在脚本代码中调用通过命令行传递给脚本的参数:
$1,$2,……:对应调用第1,2等参数
$0:命令本身
$*:传递给脚本的所有参数
$@:传递给脚本的所有参数