【发布时间】:2014-06-17 10:25:10
【问题描述】:
如果未设置变量,使用${parameter:-word} 形式的参数扩展来计算默认值时,引号的最佳做法是什么?
例如,假设一个设置了-u 的 Bash shell 脚本(在评估未定义或未设置的变量时生成错误),以测试变量是否具有值,编写等效的最佳方法是什么if [[ -z "$FOO" ]]?
if [[ -z "${FOO:-}" ]]
或
if [[ -z ${FOO:-""} ]]
还是别的什么?
【问题讨论】:
-
别的:
[[ -z ${FOO:-} ]] -
如果您考虑到 Bourne Shell 兼容性,您可能更喜欢
[ -z "${FOO:-}" ]与单括号测试和双引号的变量。
标签: bash shell quotes variable-expansion