bash 何时重新哈希 PATH?

bash 何时重新哈希 PATH?

在什么情况下,PATHbash 会重新散列?我搞不清楚什么时候需要调用hash -r,什么时候会自动调用。我能想到的最好的办法是,只要输入了找不到的命令,PATH 就会重新散列。

答案1

bash 不会哈希所有内容PATH。它只有一个哈希表,其中包含用过的在此会话期间(即在此 shell 进程中)。例如:

$哈希
命中命令
   1 /主页/grawity/code/bin/todo
$ ls
启动/dev/etc/home/usr/...
$哈希
命中命令
   1 /usr/bin/ls
   1 /主页/grawity/code/bin/todo

因此,hash -r只有当你用过的在当前 shell 中至少运行过一次程序,然后将其移到其他地方。

相关内容