当我调用命令echo时,它不会输入到哈希表中。
我尝试了其他几个命令,这些命令相应地输入到哈希表中。
$date
Sat May 25 01:16:40 CST 2019
$hash
hits command
1 /bin/date
$which date
/bin/date
$hash
hits command
1 /usr/bin/which
1 /bin/date
$echo “123”
“123”
$hash
hits command
1 /usr/bin/which
1 /bin/date
如您所见,回显未输入到哈希表中。同样,pwd之类的命令也不会输入到哈希表中。
答案 0 :(得分:2)
which
是一个外部命令,不是外壳程序的一部分。因此,它无法了解shell的内置函数,函数或别名。因此其输出通常无济于事。与type
进行比较:
$ hash -r
$ type date
date is /usr/bin/date
$ type echo
echo is a shell builtin
...和您有所不同。 echo
是外壳程序本身的一部分,因此无需搜索外部二进制文件,因此无需存储该二进制文件的位置。