Bash 带参数展开的双冒号做什么?

Bash 带参数展开的双冒号做什么?,bash,shell,openssl,Bash,Shell,Openssl,在shell脚本中,subjectAltName=${ENV::subjectAltName}是什么意思?我在MacOS上本地尝试过这个,它只返回null 我已经阅读了关于bash脚本的各种教程,我发现 subjectAltName = ${ENV:-subjectAltName} 这意味着如果ENV未设置或为null,则替换subjectAltName的扩展。否则,将替换ENV的值,但在参数展开的上下文中,我没有看到双冒号。有关该教程,请参见。还有 我也见过这种用法: $ENV::HOME/

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

我已经阅读了关于bash脚本的各种教程,我发现

subjectAltName = ${ENV:-subjectAltName}
这意味着如果ENV未设置或为null,则替换subjectAltName的扩展。否则,将替换ENV的值,但在参数展开的上下文中,我没有看到双冒号。有关该教程,请参见。还有

我也见过这种用法:

$ENV::HOME/.rnd
在这里,无论这些变量是什么,我都期望一个串联


这用于openssl.conf文件。

它不是shell语法,而是openssl.conf和openssl conf库独有的功能。报告说:

还可以使用语法$section::name或${section::name}替换另一节中的值。通过使用$ENV::name格式,可以替换环境变量


它不是shell语法,而是openssl.conf和openssl conf库独有的特性。报告说:

还可以使用语法$section::name或${section::name}替换另一节中的值。通过使用$ENV::name格式,可以替换环境变量