微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

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

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

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

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

原文地址:https://www.jb51.cc/bash/391007.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐