1
A
回答
4
見the spec:
$ myvar=
$ echo "${myvar:-default}"
default
$ echo "${myvar-default}"
$ unset myvar
$ echo "${myvar-default}"
default
的結腸,檢查是 「如果設置或爲空,則使用默認」。沒有冒號,它只是「如果未設置,使用默認值」。
有關段落(重點煤礦):
在參數擴展先前所示,在使用 的格式將導致在用於參數即設置或者 空測試;如果省略,則會導致對參數 的測試,即僅取消設置。
順便說一句,Bash也一樣。從manual引述:
當不執行子串擴展,使用形式如下所述 (例如,
:-
),對於一個參數,其設置或者爲空擊試驗。 省略冒號僅導致未設置的參數 。換句話說,如果包含冒號,則運營商測試 對於參數的存在並且其值不是 null;如果省略冒號,則操作員僅測試存在。
相關問題
- 1. 冒號如果語句差異
- 2. JSON字符串中的冒號
- 3. 字符串差異
- 4. 用冒號(:)分割字符串並用冒號分開數字
- 5. 在字符串中使用冒號
- 6. 以冒號字符開頭的EXTJS方法出錯字符串
- 7. + =符號在字符串和文本框中的差異
- 8. 冒號命令參數中冒號的語法錯誤
- 9. 點符號和基於字符串的IP之間的差異
- 10. 字符串差異php
- 11. JavaScript字符串差異
- 12. Objective-C字符串差異
- 13. TSQL字符串差異度
- 14. 當在字符串輸入中使用冒號時出現語法錯誤
- 15. 差(「引號字符串」)
- 16. PHP中的字符串差異
- 17. 如何在JSON字符串中的日期時間值內冒號冒號
- 18. 默認字符串參數
- 19. 語法差異
- 20. 從冒號和分號分隔的字符串中提取R
- 21. .htaccess中的默認查詢字符串
- 22. 本地化iOS中的字符串:默認(後備)語言?
- 23. 在CSS語法中雙冒號(::)對單冒號(:) :)
- 24. 將冒號插入字符串中的數字
- 25. JavaScript語句中的冒號
- 26. 是* nix「posix」中程序的默認語言環境嗎?
- 27. 如何遍歷POSIX shell中的雙引號字符串?
- 28. 逗號分隔字符串之間的比較差異
- 29. JS:組成的字符串與直接字符串的差異
- 30. SPARQL語法差異