如何理解$ {var:-world}

时间:2017-04-28 12:12:03

标签: linux shell

# echo ${var}

# echo ${var:-world}
world
# var='hello'
# echo ${var}
hello
# echo ${var:-world}
hello

你能否解释为什么除了echo ${var:-world}之外的第二个hello输出world

顺便问一下,英语中的主题是什么?我搜索剪切字符串,子字符串... 感谢。

1 个答案:

答案 0 :(得分:0)

${name:-alternate}参数扩展,默认值为。来自man page

  

${parameter:-word}

     

使用默认值。如果参数未设置或为null,则替换单词的扩展。否则,参数的值将被替换。

第一个${var:-world}打印world,因为$var未设置。第二个打印hello,因为您设置了$var=hello,因此$var不再被取消。因此,默认值(world)被忽略。

更多信息位于bash-hackers wiki