# echo ${var}
# echo ${var:-world}
world
# var='hello'
# echo ${var}
hello
# echo ${var:-world}
hello
你能否解释为什么除了echo ${var:-world}
之外的第二个hello
输出world
?
顺便问一下,英语中的主题是什么?我搜索剪切字符串,子字符串... 感谢。
答案 0 :(得分:0)
${name:-alternate}
是参数扩展,默认值为。来自man page:
${parameter:-word}
使用默认值。如果参数未设置或为null,则替换单词的扩展。否则,参数的值将被替换。
第一个${var:-world}
打印world
,因为$var
未设置。第二个打印hello
,因为您设置了$var=hello
,因此$var
不再被取消。因此,默认值(world
)被忽略。
更多信息位于bash-hackers wiki。