先看一段shell:
判断环境中是否存在某命令
check_program_installed() {
hash $1 > /dev/null 2>&1
if [ "$?" != "0" ]; then
print "command $1 not found. is it installed?."
exit 1
fi
}
hash命令:显示、添加或清除哈希表
1.linux系统下的hash指令
说明:
linux系统下会有一个hash表,当你刚开机时这个hash表为空,每当你执行过一条命令时,hash表会记录下这条命令的路径,就相当于缓存一样。第一次执行命令shell解释器默认的会从PATH路径下寻找该命令的路径,当你第二次使用该命令时,shell解释器首先会查看hash表,没有该命令才会去PATH路径下寻找。
hash表的作用:
大大提高命令的调用速率。
2.参数
-l 显示hash表内容
-r 清除hash表
-d openssl 删除表中某一条(删除openssl)
-t openssl 查看openssl命令路径(hash表中没有的话,可以调用which命令)
-p /usr/bin/openssl aliesopenssl 往hash表中添加一条,执行aliesopenssl即执行openssl命令(起别名)