是本范例中的
关键词
部分!必
要存在的哩!
new_var=${
old_var
-
content}
量,被
测试
目!
new_var=${old_var
-
content
}
量的『
容』,在本范例中,
这个
部分是在『
予未
量的
容』
不过这还是有点问题!因为
username
可能已经被设定为『空字符串』了!果真如此的话,那你还可
以使用底下的范例来给予
username
的内容成为
root
喔!
范例二:若
username
定或
空字符串,
则½
username
root
[dmtsai@study ~]$
username=""
[dmtsai@study ~]$
username=${username
-
root}
[dmtsai@study ~]$
echo ${username}
<==
username
空字符串了!所以
是保留
空字符串!
[dmtsai@study ~]$
username=${username:
-
root}
[dmtsai@study ~]$
echo ${username}
root
<==
加上『
:
』后若
空或者是未
定,都能
以后面的
容替
在大括号内有没有冒号『
:
』的差别是很大的!加上冒号后,被测试的变量未被设定或者是已被设
定为空字符串时,
都能够用后面的内容
(
本例中是使用
root
为内容
)
来替换与设定!这样可以了½
了吗?除了这样的测试之外,
还有其他的测试方法喔!鸟哥½他整理如下:
Tips
底下的例子当中,那个
var
str
为变量,我们想要针对
str
是否有设定来决定
var
的值喔!
一般来说,
str:
代表『
str
没设定或为空的字符串时』;至于
str
则½为『没有该变数』。
变量设定方式
str
没有设定
str
为空字符串
str
已设定非为空字符串
var=${str
-
expr}
var=expr
var=
var=$str
var=${str:
-
expr}
var=expr
var=expr
var=$str
var=${str+expr}
var=
var=expr
var=expr
var=${str:+expr}
var=
var=
var=expr
var=${str=expr}
str=expr
var=expr
str
不变
var=
str
不变
var=$str