shell 中的賦值和替換

shell 中包含了一組檢查並賦值的表達式:

1) newValue = ${ref:-another}

如果ref值非空,則用ref的值賦值給newValue,否則用another的值賦值給newValue

x=1

v1=${x:-2}

v2=${x2:-2}

執行完,x=1,v1=1,v2=2

 

2)newValue=${ref:+another}

如果ref的值非空,則用another的值賦值給newValue,否則newValue爲空

x=1

v1=${x:+2}

v2=${x2:+2}

執行完,x=1,v1=2,v2爲空

 

3) newValue=${ref:=anoher}

如果ref的值非空,則將ref的值賦值給newValue,否則將another的值賦值給newValue並且ref的值也設置爲another

x=1

v1=${x:=2}

v2=${x2:=2}

執行完,x=1,v1=1,v2=2,x2=2

 

4) newValue=${ref:?another}

如果ref的值非空,則將ref的值賦值給newValue,否則將顯示another的值並且退出

x=1

v1=${x:?2}

v2=${x2:?2}

在執行v2賦值是,因爲x2不存在,則腳本在此處終止並且顯示2.

 

檢測並且賦值的表達式在處理用戶輸入參數時特別有用,比如在用戶沒有輸入的提供默認值。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章