Chinaunix首页 | 论坛 | 博客
  • 博客访问: 401960
  • 博文数量: 112
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 800
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-29 13:41
文章分类

全部博文(112)

文章存档

2020年(1)

2018年(10)

2017年(27)

2016年(18)

2015年(31)

2014年(25)

分类: 系统运维

2016-04-06 15:03:22

1、很多系统的which并不设置退出时的返回值,即使要查找的命令不存在,which也返回0。

点击(此处)折叠或打开

  1. # which ls
  2. /usr/bin/ls
  3. # echo $?
  4. 0
  5. # which aaa
  6. no aaa in /usr/bin /bin /usr/sbin /sbin /usr/local/bin /usr/local/bin /usr/local/sbin /usr/ccs/bin /usr/openwin/bin /usr/dt/bin
  7. # echo $?
  8. 0
2、许多系统的which实现,都偷偷摸摸干了一些“不足为外人道也”的事情。所以,不要用which,可以使用下面的方法:


点击(此处)折叠或打开

  1. $ command -v foo >/dev/null 2>&1 || { echo >&2 "I require foo but it's not installed. Aborting."; exit 1; }
  2. $ type foo >/dev/null 2>&1 || { echo >&2 "I require foo but it's not installed. Aborting."; exit 1; }
  3. $ hash foo 2>/dev/null || { echo >&2 "I require foo but it's not installed. Aborting."; exit 1; }

阅读(1271) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~