VAR=${VAR:-值}
目的是将环境变量 VAR 设置为值,除非它已经设置。
我看到它可以在 bash 和 dash 中运行,但是它的便携性如何?
答案1
这个分配是可移植的,它可以在任何 POSIX shell 中工作。 POSIX 定义这个扩展作为:
${参数:-word}
使用默认值。如果参数未设置或为空,则替换单词的扩展;否则,应替换参数的值。
但如果已设置并且为 null,则这也会设置VAR
为值。VAR
要设置VAR
值(除非已经设置),您必须使用:
VAR=${VAR-value}
省略冒号使得仅当变量未设置时才发生替换:
在前面显示的参数扩展中,在格式中使用冒号将导致对未设置或为空的参数进行测试;省略冒号将导致对仅未设置的参数进行测试。