首页 > Linux Shell, 操作系统 > SHELL变量

SHELL变量

2015年1月20日 发表评论 阅读评论

1.设置参数语法name=value

注意等号左右没有空格,否则会报错

[root@Server ~]# name =tom

bash: name: 未找到命令...

[root@Server ~]# name= tom

bash: tom: 未找到命令...

[root@Server ~]# name == tom

bash: name: 未找到命令...

2.参数显示

如果之前没有设置过某个参数,则该参数属于不存在。如果设置了参数但没有参数值,该参数属于NULL,也就是值是未知的。

2.1${parameter-value}

核查$prameter参数是否存在,如果不存在则显示value值,存在显示设置的值

[root@Server ~]# unset name
[root@Server ~]# echo ${name-tom}
tom

注意该格式值核查参数是否存在而不核查参数是否为空,例如:

[root@Server ~]# name=
[root@Server ~]# echo ${name-tom}
 

返回的是空。

2.2${parameter:-value}

核查$prameter参数是否存在或者是否是NULL(未知),如果不存在则显示value值,存在显示设置的值

[root@Server ~]# echo ${name:-tom}
tom

注意${parameter-value}${parameter:-value}只是改变返回值,并不会改变$prameter的值

例如:

[root@Server ~]# echo $name
 

$name的值还是空

2.3${parameter=value}

核查$prameter参数是否存在,如果不存在则显示value值,同时将value值赋给$prameter。存在显示设置的值,,例如

[root@Server ~]# unset
[root@Server ~]# echo ${name=tom}
tom
[root@Server ~]# echo $name
tom

2.3${parameter:=value}

核查$prameter参数是否存在或者是否是NULL(未知),如果不存在则显示value值,同时将value值赋给$prameter。存在显示设置的值。

[root@Server ~]# unset name
[root@Server ~]# echo ${name:=tom}
tom
[root@Server ~]# echo $name
tom
[root@Server ~]# unset name
[root@Server ~]# name=
[root@Server ~]# echo ${name:=tom}
tom
[root@Server ~]# echo $name
tom

2.4${name+value}

核查参数是否存在,如果存在则返回value值否则返回空,例如:

[root@Server ~]# unset name
[root@Server ~]# echo ${name+tom}
 
[root@Server ~]# name=jack
[root@Server ~]# echo ${name+tom}
tom

第一次由于name的值为设置所有返回空,name赋值后再次打印时显示value的值。它可以用来判断一个参数是否存在。

2.5${name:+value}

核查参数是否存在或是否为NULL(未知),如果存在且不为NULL则返回value值否则返回空,例如:

[root@Server ~]# unset name
[root@Server ~]# name=
[root@Server ~]# echo ${name:+tom}
 
[root@Server ~]# name=jack
[root@Server ~]# echo ${name:+tom}
tom

2.6${name?value}

核查参数是否存在,如果不存在则返回异常信息value值否则name的值

[root@Server ~]# unset name
[root@Server ~]# echo ${name?error}
-bash: name: error
[root@Server ~]# echo $?
1

$?:返回上次执行的状态码,非0表示非正常退出

2.7${name:?value}

核查参数是否存在或值为NULL(未知),如果不存在或值为NULL(未知)则返回异常信息value值否则name的值。

[root@Server ~]# unset name
[root@Server ~]# name=
[root@Server ~]# echo ${name:?error}
-bash: name: error
[root@Server ~]# echo $?
1

分类: Linux Shell, 操作系统 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.