国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > php开源 > php教程 > 【Bash百宝箱】shell内建命令之hash

【Bash百宝箱】shell内建命令之hash

来源:程序员人生   发布时间:2016-11-09 16:51:29 阅读次数:2322次

在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脚本。

生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生