作为一个 bash 新手,我一直在通过复制/粘贴 + github 升级我的 .bashrc,我遇到了:让我和谷歌都难堪的命令。例如: ${USER_BASH_COMPLETION_DIR:=~/.bash_completion.d}。
如果最初在我的 .bashrc 中没有此语句,并将这些内容输入到我的终端中(->表示相关输出):
: ${USER_BASH_COMPLETION_DIR=~/.bash_completion.d}
echo $USER_BASH_COMPLETION_DIR
-> /Users/sh/.bash_completion.d
Run Code Online (Sandbox Code Playgroud)
和:
: ${USER_BASH_COMPLETION_DIR=~/.bash_completion.d}
export USER_BASH_COMPLETION_DIR=asdf
echo $USER_BASH_COMPLETION_DIR
-> asdf
Run Code Online (Sandbox Code Playgroud)
但:
: ${USER_BASH_COMPLETION_DIR=~/.bash_completion.d}
export USER_BASH_COMPLETION_DIR=asdf
: ${USER_BASH_COMPLETION_DIR=~/.bash_completion.d}
echo $USER_BASH_COMPLETION_DIR
-> asdf
Run Code Online (Sandbox Code Playgroud)
我不明白!
1) 冒号命令如何设置变量但不能覆盖设置的变量export?
2):在某些 .bashrc 中使用背后的逻辑是什么?
使用 Mac 10.6.8
(在上下文中包含关键字冒号只是为了帮助像我这样试图搜索该术语的其他人)
bash ×1