Node JS bash 命令中的这个目录是什么?

Node JS bash 命令中的这个目录是什么?

阅读 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 系统上最常见)来选择该目录的位置。

相关内容