bash中判断查找的字符串是否存在

if lsusb | grep "Spreadtrum" > /dev/null 2>&1  

then
    echo " success"
else
    echo " fail"
fi

lsusb | grep "Spreadtrum" > /dev/null 2>&1
if [ "$?" -eq "0" ];then
    echo "success"
else
    echo "fail"
fi

以上2种方式意思相同,故可使用第1种较为简洁

主要原因是

BJS\lisa.liu@lisaliuubtpc:~/bin$ lsusb | grep "Spreadtrum"
Bus 002 Device 017: ID 1782:5d04 Spreadtrum Communications Inc.

输出有很多域,故不能直接使用

if [ -n `lsusb | grep "Spreadtrum"` ]
then
    echo "success"
else
    echo "fail"
fi

否则会出现错误提示: bash: [: too many arguments

如果仅有一个域输出,则可以使用最后一种格式,但需要改写

if [ -n `lsusb | grep "Spreadtrum" | awk '{ print $7 }'` ]
then
     echo "success"
else
    echo "fail"
fi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值