在shell中,内建(builtin)命令hash,格式以下:
hash [-lr] [-p filename] [-dt] [name]
hash命令的作用是在环境变量PATH中搜索命令name的完全路径并记住它,这样以后再次履行相同的命令时,就没必要搜索其完全路径了,而且shell每次履行环境变量PATH中的1个命令时,hash都会记住它。当hash不指定任何参数时,显示当前hash列表,包括每一个命令的完全路径和履行次数。选项“-l”用于显示当前hash列表中的命令及完全路径等信息。选项“-r”用于清空hash列表。选项“-p filename”用于指定命令name的路径,路径filename是1个文件而非目录。选项“-d”用于从hash列表中移除命令name对应的记录。选项“-t”用于显示hash列表中命令name的完全路径。成功履行时,hash命令的退出状态为0。
以下是hash命令的几个例子(启动1个新的shell终端开始履行):
$ hash
hash: hash table empty
$ hash ls
$ hash top
$ ps > /dev/null
$ uname > /dev/null
$ uname > /dev/null
$ hash
hits command
1 /bin/ps
2 /bin/uname
0 /bin/ls
0 /usr/bin/top
$ hash -t ps
/bin/ps
$ hash -d uname
$ hash
hits command
2 /bin/ps
0 /bin/ls
0 /usr/bin/top
$ hash -l
builtin hash -p /bin/ps ps
builtin hash -p /bin/ls ls
builtin hash -p /usr/bin/top top
$ hash -r
$ hash
hash: hash table empty
我们也能够自定义1个命令,例如“hash -p script_path foo”,命令的名字为foo,对应的shell脚本的完全路径为script_path,然后履行foo命令时,实际履行的就是其对应的shell脚本。
上一篇 虚拟货币系统【源中瑞】开发