.bashrc文件中的bash哈希命令不会影响全局环境



在我的.bashrc文件中,我有以下两个命令:

hash ih kl klt
hash

当 .bashrc 文件是源的,输出是预期的:

hits    command
   0    /userdata/cfor/utils/worklib/kl
   0    /userdata/cfor/utils/prodlib/ih
   0    /opt/local/tools/bin/vi

但是之后当我在命令提示符下输入"哈希"时,它告诉我哈希表是空的。 就好像哈希指令的效果只存在于 .bashrc 文件的来源时。 我在 .bashrc 文件中放了一个"echo $$"指令,然后在采购完成后检查了 $$ 的值,它们是相同的。 为什么哈希命令的效果在 .bashrc 文件完成源后不保留?

谢谢!

您需要

~/.profile~/.bash_profile获取~/.bashrc。当作为登录 shell 调用时,就像我打开新终端时发生的那样,bash 不会获取~/.bashrc

查看 Bash 启动文件的文档。

我解决了这个问题。 我发现我的系统管理员在/etc/profile 文件中引入了一个指向另一个脚本的链接,该脚本导致 .bashrc 文件作为系列中的几个文件之一。 这与在默认环境中自动获取点文件的方式完全不同。 无论如何,其中一个"额外"脚本正在重置 PATH,这会导致命令哈希表重新初始化。 我发现即使我公司进行了修改,~/.bash_profile 文件仍然是最后一个要获取的文件,所以我把我的哈希指令放在那里。 然后,在我注销并重新登录后,哈希指令的结果仍然存在。

感谢您的回复,他们帮助指导了哪里看。

相关内容

  • 没有找到相关文章

最新更新