【问题标题】:What do double colons with parameter expansion do?带参数扩展的双冒号有什么作用?
【发布时间】:2018-10-10 10:21:07
【问题描述】:

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

我看过各种关于 bash 脚本的教程,我发现类似

subjectAltName = ${ENV:-subjectAltName}

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

我也见过这种用法:

$ENV::HOME/.rnd

在这里,我希望将这些变量串联起来。

这用于openssl.conf 文件。

【问题讨论】:

    标签: bash shell openssl


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2010-12-03
      • 1970-01-01
      • 2022-06-29
      • 2021-12-22
      • 2022-07-12
      • 1970-01-01
      • 2013-11-22
      • 1970-01-01
      • 2011-08-21
      相关资源
      最近更新 更多