阅读 NodeJS 页面,偶然发现了这个 bash 命令:
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
这:
- 测试它
${XDG_CONFIG_HOME-}
是空的并打印主目录或者打印其余部分 - 导出结果
- 执行目录中的脚本
我不明白这${XDG_CONFIG_HOME-}
是为什么?
我也不确定 $(...) 在这里做什么,打印或回显还不够吗?
答案1
XDG_CONFIG_HOME
是一个环境变量,它扩展到程序应存储配置文件的目录。默认情况下,该目录位于.config
您的主目录中。所以就我而言,它将扩展到/home/john/.config
.
您询问的命令似乎检查是否设置了此环境变量。如果已设置,则设置NVM_DIR
为${XDG_CONFIG_HOME}/nvm
。否则(如果XDG_CONFIG_HOME
未设置),则设置NVM_DIR
为${HOME}/.nvm
。${HOME}
只需扩展到您的主目录即可。
我想这NVM_DIR
是该程序将存储配置(或其他)数据的目录。命令的第一行只是根据 if 的XDG_CONFIG_HOME
设置(据我所知,在现代 Linux 系统上最常见)来选择该目录的位置。