gpt4 book ai didi

Bash 命令以冒号开头,在等号前有另一个冒号

转载 作者:行者123 更新时间:2023-11-29 09:00:23 27 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Explanation of colon operator in ": ${foo=value}"

(2 个回答)



What is the purpose of the : (colon) GNU Bash builtin?

(12 个回答)


6年前关闭。




我找不到任何可以解释以下语法的文档。
它在 bash 脚本中做什么?是测试吗?

: ${foo:=bar}; export foo

最佳答案

:命令是 null utility :

This utility shall only expand command arguments. It is used when a command is needed, as in the then condition of an if command, but nothing is to be done by the command.


还有 Bourne Shell Builtins :

Do nothing beyond expanding arguments and performing redirections. The return status is zero.

${foo:=bar}语法是特殊的 Parameter Expansion :
${parameter:=[word]}

Assign Default Values. If parameter is unset or null, the expansion of word (or an empty string if word is omitted) shall be assigned to parameter. In all cases, the final value of parameter shall be substituted. Only variables, not positional parameters or special parameters, can be assigned in this way.


Bash 引用手册 entry :
${parameter:=word}

If parameter is unset or null, the expansion of word is assigned to parameter. The value of parameter is then substituted. Positional parameters and special parameters may not be assigned to in this way.


所以你问题中的命令行:
: ${foo:=bar}; export foo
是两条命令:
  • : ${foo:=bar}
  • export foo

  • 第一个扩展变量 foo如果它为空或未设置,则为其分配值 bar .
    第二个然后导出 foo子 shell 和其他进程的变量。

    关于Bash 命令以冒号开头,在等号前有另一个冒号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30126047/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com