shell脚本判断一个命令是否存在

1. 直接执行

优点:简单、直接。
缺点:会启动程序,对于rm 、python等命令需要加上没有其它副作用的参数。如查看版本的参数–version。

# 方法1
ls &> /dev/null
if [ $? -eq 0 ]
then
	echo "exist"
fi

# 方法2
if python --version &> /dev/null
then
	echo "exist"
fi

2. 内建命令

内建命令相对稳定

POSIX compatible:

  • command(兼容性更好)
# 方法1
command -v ls &> /dev/null
if [ $? -eq 0 ]
then
	echo "exist"
fi

# 方法2
if command -v python &> /dev/null
then
	echo "exist"
fi

For Bash specific environments:

  • type
  • hash

3. 外部工具

  • which
    最好避免使用 which,做为一个外部的工具,并不一定存在,在发行版之间也会有区别,有的系统的 which 命令不会设置有效的 exit status,存在一定的不确定性。
  • whereis
    与which类似

参考

shell中如何判断某一命令是否存在
How can I check if a program exists from a Bash script?
How can I check if a command exists in a shell script? [duplicate]
shell编程判断一个命令是否存在?

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值