shell 中的变量

环境变量:用于保存操作系统运行时使用的环境变量。

位置变量(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到标准错误输出。


你可能感兴趣的:(shell 中的变量)