Kosh Asked: 2022-06-20 12:33:58 +0800 CST2022-06-20 12:33:58 +0800 CST 2022-06-20 12:33:58 +0800 CST macOS 中的 ${HOME} 和 $HOME 有什么区别? 772 我在我的 .zshrc 中遇到了不同的变量提及,带有大括号和没有它们。和有什么区别 export ANDROID_HOME=${HOME}/Library/Android/sdk 和 export ANDROID_HOME=$HOME/Library/Android/sdk ? macos shell 1 个回答 Voted Best Answer Spiff 2022-06-20T12:50:09+08:002022-06-20T12:50:09+08:00 大括号告诉 shell 要替换的令牌的确切开始和结束位置。 这通常很重要,因为紧跟在变量名后面的某些字符(例如冒号或左方括号)可能对 shell 有意义,从而在处理变量替换(技术上称为“参数扩展”)的方式中触发可能不需要的行为。 见https://zsh.sourceforge.io/Doc/Release/Expansion.html#Parameter-Expansion 请注意,冒号和其他一些参数扩展修饰符字符可以追溯到原始的 Bourne shell ( /bin/sh),可能是 POSIX 合规性的一部分,并且适用于几乎所有类 Unix 操作系统上的几乎所有 shell,而不仅仅是zshmacOS。 已编辑:删除了错误示例并专注于冒号大小写。
大括号告诉 shell 要替换的令牌的确切开始和结束位置。
这通常很重要,因为紧跟在变量名后面的某些字符(例如冒号或左方括号)可能对 shell 有意义,从而在处理变量替换(技术上称为“参数扩展”)的方式中触发可能不需要的行为。
见https://zsh.sourceforge.io/Doc/Release/Expansion.html#Parameter-Expansion
请注意,冒号和其他一些参数扩展修饰符字符可以追溯到原始的 Bourne shell (
/bin/sh
),可能是 POSIX 合规性的一部分,并且适用于几乎所有类 Unix 操作系统上的几乎所有 shell,而不仅仅是zsh
macOS。已编辑:删除了错误示例并专注于冒号大小写。