| 變數設定方式 | 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 | str 不變 | str 不變 |
| var=expr | var= | var=$str |
|
var=${str:=expr} |
str=expr | str=expr | str 不變 |
| var=expr | var=expr | var=$str |
|
var=${str?expr} |
expr 輸出至 stderr | var= | var=$str |
var=${str:?expr} |
expr 輸出至 stderr | expr 輸出至 stderr | var=$str |
[root@linux ~]# unset str; var=${str:-newvar}
[root@linux ~]# echo var="$var", str="$str"
var=newvar, str= %*<==因為 str 不存在,所以 var 為 newvar*)
[root@linux ~]# str="oldvar"; var=${str-newvar}
[root@linux ~]# echo var="$var", str="$str"
var=oldvar, str=oldvar %*<==因為 str 存在,所以 var 等於 str 的內容*)
[root@linux ~]# unset str; var=${str=newvar}
[root@linux ~]# echo var="$var", str="$str"
var=newvar, str=newvar %*<==因為 str 不存在,所以 var/str 均為 newvar*)
[root@linux ~]# str="oldvar"; var=${str=newvar}
[root@linux ~]# echo var="$var", str="$str"
var=oldvar, str=oldvar %*<==因為 str 存在,所以 var 等於 str 的內容*)
[root@linux ~]# unset str; var=${str?novar}
-bash: str: novar %*<==因為 str 不存在,所以輸出錯誤訊息 *)
[root@linux ~]# str="oldvar"; var=${str?novar}
[root@linux ~]# echo var="$var", str="$str"
var=oldvar, str=oldvar %*<==因為 str 存在,所以 var 等於 str 的內容*)
echo $sum,結果為何?
echo $sum,結果為何?
echo ${sum[0]} ${sum[1]} ${sum[2]}
echo ${sum[@]}
echo ${#sum[@]}
echo ${csie##/*/},結果為何?
echo ${csie#/*/},結果為何?
echo ${csie##/*},結果為何?
echo ${csie#/*},結果為何?
echo ${csie%%/*/},結果為何?
echo ${csie%%/*},結果為何?
echo ${csie%/*/},結果為何?
echo ${csie%/*},結果為何?
echo ${csie/testing/TEST},結果為何?
echo ${csie//testing/TEST},結果為何?
var=$str;否則 var=new 字串,如何設定?
var=${str-new}
var=$str;否則 var=new 字串,如何設定?
var=${str:-new}
var=${str+new}
var=${str:+new}
var=${str-new}; echo var="$var", str="$str" 的結果為何?
var=${str-new}; echo var="$var", str="$str" 的結果為何?
var=${str-new}; echo var="$var", str="$str" 的結果為何?
var=${str:-new}; echo var="$var", str="$str" 的結果為何?
var=${str:-new}; echo var="$var", str="$str" 的結果為何?
var=${str:-new}; echo var="$var", str="$str" 的結果為何?
var=${str+new}; echo var="$var", str="$str" 的結果為何?
var=${str+new}; echo var="$var", str="$str" 的結果為何?
var=${str+new}; echo var="$var", str="$str" 的結果為何?
var=${str:+new}; echo var="$var", str="$str" 的結果為何?
var=${str:+new}; echo var="$var", str="$str" 的結果為何?
var=${str:+new}; echo var="$var", str="$str" 的結果為何?
var=${str=new}; echo var="$var", str="$str" 的結果為何?
var=${str=new}; echo var="$var", str="$str" 的結果為何?
var=${str=new}; echo var="$var", str="$str" 的結果為何?
var=${str:=new};echo var="$var", str="$str" 的結果為何?
var=${str:=new}; echo var="$var", str="$str" 的結果為何?
var=${str:=new}; echo var="$var", str="$str" 的結果為何?
var=${str?new}; echo var="$var", str="$str" 的結果為何?
var=${str?new}; echo var="$var", str="$str" 的結果為何?
var=${str?new}; echo var="$var", str="$str" 的結果為何?
var=${str:?new}; echo var="$var", str="$str" 的結果為何?
var=${str:?new}; echo var="$var", str="$str" 的結果為何?
var=${str:?new}; echo var="$var", str="$str" 的結果為何?
Next: 實機練習題
Up: Shell 變數
Previous: 變數的變化與取代
Contents
2017-06-14