环境变量:用于保存操作系统运行时使用的环境变量。
位置变量(positional parameters):Bash将传递给脚本的参数保存在位置变量中,以便于在脚本中引用这些参数。
预定义变量:由系统保留和维护的一组特殊的变量,这些变量通常用于保存程序运行状态等。
自定义变量:由用户自行定义的变量。
参数传递的变量:
Bash定义了9个位置变量,分别是$1、$2、$3、$4…$9.脚本编写者在脚本中引用这9个变量,获取传递给脚本的参数。
预定义变量:
$0:保存当前进程或脚本的名称。
$*:保存传递给脚本或进程的所有参数(做个整体一个字符串)。
$@:保存传递给脚本或进程的所有参数(每个作为独立的字符串)。
$$:当前进程或脚本的PID。
$!:后台运行的最后一个进程的PID号。
$?:用于返回上一条命令是否执行成功。如果成功执行,将返回数字0,否则返回非零数字(通常情况下都返回数字1)。
$#:用于保存脚本的参数个数。
$!!:上一个bash执行的命令 同义词(!-1)
$-: 传递到脚本中的标志(使用set)
$_: 上一个命令的最后一个参数
1使用unset命令,解除变量与值的绑定
2有条件的命令替换:
当形式为:${variable:- value},如果此时variable是空的,那么variable的 取值为value, 只局限于当前值,离开本语句,variable的值仍旧为空。
当形式为 : ${variable: +value},如果此时variable非空,那么variable的值才为value.离开本 句,值回归到原来的值
当形式为:${variable:=value}时,离开本语句,variable的值仍旧为value
当形式为:${variable:?message}时,首先验证variable,如果此时,variable为空,输出错 误消息message到标准错误输出。