Linux 如何理解${var:-world}
你能解释一下为什么第二个Linux 如何理解${var:-world},linux,shell,Linux,Shell,你能解释一下为什么第二个echo${var:-world}outputhello不是world 顺便问一下,这个题目用英语叫什么?我搜索了切割字符串,子字符串。。。 谢谢。${name:-alternate}是带有默认值的参数扩展。从: ${参数:-word} 使用默认值。如果参数为unset或null,则替换word的展开形式。否则,将替换参数的值 第一个${var:-world}已打印world,因为$var未设置。第二次打印的是hello,因为您设置了$var=hello,所以$var不再
echo${var:-world}
outputhello
不是world
顺便问一下,这个题目用英语叫什么?我搜索了切割字符串,子字符串。。。
谢谢。
${name:-alternate}
是带有默认值的参数扩展。从:
${参数:-word}
使用默认值。如果参数为unset或null,则替换word的展开形式。否则,将替换参数的值
第一个${var:-world}
已打印world
,因为$var
未设置。第二次打印的是hello
,因为您设置了$var=hello
,所以$var
不再是未设置的。因此,默认值(world
)被忽略
更多信息请访问。您是否作为root用户进行这些实验?还是使用“#”作为非root用户的默认提示?不管怎样,别再这样做了。@williampersell是的,我以root用户身份登录。为什么不能使用“#”?这是stackoverflow规则,还是使用linux时需要考虑的其他一些问题?惯例是提示中的前导字符“#”表示root登录。几乎全世界都承认,以root用户身份运行交互式shell是一种不好的做法,而且由于
sudo
的引入几乎没有必要。@williampersell是的,universal但对我来说:)。无论如何,谢谢!我会努力变得更专业。
# echo ${var}
# echo ${var:-world}
world
# var='hello'
# echo ${var}
hello
# echo ${var:-world}
hello