在 Ubuntu 24.04 上打开终端窗口时,我收到以下消息:
bash: hash: hashing disabled
它是由这一行引起的:
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
它加载nvm
(https://github.com/nvm-sh/nvm)。
我可以启用哈希吗?
为什么它可能被禁用?
在 Ubuntu 24.04 上打开终端窗口时,我收到以下消息:
bash: hash: hashing disabled
它是由这一行引起的:
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
它加载nvm
(https://github.com/nvm-sh/nvm)。
我可以启用哈希吗?
为什么它可能被禁用?
如果您收到该消息,则意味着您已禁用散列,并且正在运行源脚本
hash
中的某些内容内置功能;在这种特定情况下,该脚本运行hash -r
两次,以便忘记两个不同实例中的所有散列命令。这意味着在这种特定情况下,禁用散列对于该特定脚本来说不是问题,因为脚本无论如何都会尝试忘记所有散列命令;但是,它提出了一个事实,即在获取脚本之前其他东西已经禁用了散列,这在正在发生的上下文中可能有意义,但在正常使用 shell 时通常没有意义,因为通常您希望启用散列。
因此,在找出禁用散列的原因之后(某个
set +h
命令,可以在~/.bashrc
/由交互式登录 shell 提供的另一个文件中/由其~/.bashrc
自身提供的另一个文件中),在完成需要禁用散列的任务后,通过运行以下命令立即重新启用散列: