bash – “:${foo = value}”中的冒号运算符的说明

我理解冒号运算符在bash的行为像 a null,我知道它在 parameter expansion使用,以及使用其他方式,但有人可以解释这一点:
: ${SOMETHING='value'}

从实验我知道,这将环境变量$ SOMETHING设置为’value’,但为什么?

“只是因为它是”是一个有效的答案,但然后请指出我的文档(我似乎找不到)或一个正确的名称,这种用法将是有用的。我希望有一个更有启发性的解释。

如果尚未设置,表达式将SOMETHING设置为value。在许多情况下,这是一个有用的运算符。但是,它也返回赋值,所以如果你只是执行
${SOMETHING='value'}

那么你的shell会尝试调用命令的值。这可能或可能不会做一些不必要的事情;至少它会抛出一条消息“值:命令未找到”。

为了避免这种情况,你可以使用no-op:来评估它的参数,然后抛弃它,而不是执行它。

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...