参数扩展的双冒号有什么作用?

问题描述 投票:1回答:1

shell脚本中的subjectAltName = ${ENV::subjectAltName}是什么意思?我在MacOS本地尝试了这个,它只返回null。

我已经去过关于bash脚本的各种教程,我发现了类似的东西

subjectAltName = ${ENV:-subjectAltName}

意味着如果ENV未设置或为null,则subjectAltName的扩展将被替换。否则,ENV的值被替换,但我没有在参数扩展的上下文中看到双冒号。有关该教程,请参阅here。还有here

我也见过这种用法:

$ENV::HOME/.rnd

在这里,我期望这些变量的连接。

这用于openssl.conf文件。

bash shell openssl
1个回答
4
投票

它不是shell语法,它是openssl.conf和OpenSSL CONF库独有的功能。 config(5) man page说:

也可以使用语法$section::name${section::name}替换另一个部分中的值。通过使用$ENV::name形式,可以替换环境变量。

© www.soinside.com 2019 - 2024. All rights reserved.