庆典: “$ {A:-B}” 操作符
我已经重构了一些bash的代码,偶然发现了这个bash的符号:
"${string_a:-string_b}"
我在命令行上起了小本:
$ echo "${string_a:-string_b}"
string_b
$ export string_a=string_a_value
$ echo "${string_a:-string_b}"
string_a_value
我似乎{a:-b}
符号返回的可变a
值,如果它被定义,或串b
否则。
我在哪里可以找到这个操作符的更正式的定义?
同伴的压力,我张贴作为一个答案我的意见:)
我喜欢这个参考卡:Advanced Bash-Scripting Guide,特别是在你的情况下,这将是有益“#表B-4参数替换和扩展。” 。
我不会复制任何表明不违反任何版权的问题。只需在那里找到所有信息。
最后一句话+1。 http://tldp.org/LDP-COPYRIGHT.html – Kent 2013-04-24 13:48:38
您可以使用man bash访问bash文档。要搜索类型/
$ {参数:-word}
使用默认值。如果参数未设置或为空,则替换字的扩展。否则,将替换参数的值。
有趣的是,这个运营商没有名字。 – 2013-04-24 13:43:16
另一个有用的链路是击参考 手册中的Shell Parameter Expansion section。的操作者:-
定义为:
$ {参数:-word}如果参数是设置或者为空, 字的膨胀取代。否则,参数的值将被替换。
顺便提一下,bash实现三个类似的运营商${parameter:=word}
,${parameter:?word}
和${parameter:+word}
,在该部分中所定义。
我喜欢这张参考卡:http://tldp.org/LDP/abs/html/refcards.html#表B-4。参数替换和扩展 – fedorqui 2013-04-24 13:37:56
太好了,通过它作为答案,我会接受它。 – 2013-04-24 13:39:02
@fedorqui你的评论回答了这个问题:“我在哪里可以找到这个运算符的更正式的定义?”,我认为它可以回答。 – Kent 2013-04-24 13:40:22