LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2016|回复: 10

大家如何判断一个命令是否存在呢?

[复制链接]
发表于 2010-7-22 11:02:52 | 显示全部楼层 |阅读模式
我只想到下面方式来判断, 还有更简单更安全的方式检测吗?

whereis 命令
发表于 2010-7-22 11:40:47 | 显示全部楼层
嗯,我觉得whereis就够简单够安全了吧。

locate也能查询命令是否存在
回复 支持 反对

使用道具 举报

发表于 2010-7-22 12:38:02 | 显示全部楼层
su,then try it
回复 支持 反对

使用道具 举报

发表于 2010-7-22 15:09:14 | 显示全部楼层
locate bin/XXXX
可执行文件都是放在/bin /sbin /usr/bin /usr/sbin 总之都有个bin的
回复 支持 反对

使用道具 举报

发表于 2010-7-23 00:51:50 | 显示全部楼层
我用 which,判断其返回值
whereis 给出的结果太多,或者要加参数,最大的问题是返回值总是0
从不装 locate,忽略之
回复 支持 反对

使用道具 举报

发表于 2010-7-24 00:08:15 | 显示全部楼层
Post by biinn;2104724
我用 which,判断其返回值
whereis 给出的结果太多,或者要加参数,最大的问题是返回值总是0
从不装 locate,忽略之

which是在$PATH里找。which不能识别alias,我每次总是which,再alias。有什么好办法能兼顾二者么?
回复 支持 反对

使用道具 举报

发表于 2010-7-24 01:42:15 | 显示全部楼层
从不用 alias,只好飘过
回复 支持 反对

使用道具 举报

发表于 2010-7-24 02:34:03 | 显示全部楼层
try type
回复 支持 反对

使用道具 举报

发表于 2010-7-27 10:58:20 | 显示全部楼层
whereis 是查找命令的可执行文件,源文件,以及man page 的路径,而一个命令的可执行位置可能又不止一个,所以 用which 可以查到哪个可执行文件会在当前的sh中被执行;
所以whereis 和which 配合使用会全面了解,一个命令的路径以及哪个被执行;

type 可以执行类似于which 的功能(type -a得到的结果和which类似),但type命令似乎其他用途更大,可以查找某个命令是内部命令还是外部命令,当然它还有些参数[-tpa] ,其中-t能得到命令是file(外部命令) ,alias ,buildin (内部命令啦)中的哪一种;

locate 执行查找文件的功能,没有特定是查找命令;

要说快速判断命令是否存在 那还是用which 或 type -a 吧

以上我之前也很难弄清楚,现在写出来也算帮自己弄个明白了。
回复 支持 反对

使用道具 举报

发表于 2011-7-14 17:55:32 | 显示全部楼层
我一般是用TAB键
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表