在bash中检查if语句中的两个条件

如果陈述有问题,我有问题

var1=`COMMAND | grep <Something>`
if [ -n "$var1" ] && if [[ "$var1" != string ]]; then
    .
    .
    .
fi

我想写如果语句检查:

如果var1不为空并且如果字符串(可能是hello词)不在var1中,那么做东西。

我怎样才能做到这一点?


只要使用这样的东西:

if [ -n "$var1" ] && [[ ! $var1 == *string* ]]; then
...
fi

看一个例子:

$ v="hello"
$ if [ -n "$v" ] && [[ $v == *el* ]] ; then echo "yes"; fi
yes
$ if [ -n "$v" ] && [[ ! $v == *ba* ]] ; then echo "yes"; fi
yes

第二个条件是在bash中包含的字符串中包含的变体。


其他可能性:

if [ -n "$var1" -a "$var1" != string ]; then ...

if [ "${var1:-xxx}" != "string" ]; then ...

你应该改变这样的条件:

var1=`COMMAND | grep <Something>`
if [ -n "$var1" ] && [[ "$var1" != "string" ]]; then
.
.
.
fi

或同等的:

if test -n "$var1"  && test "$var1" != "string"
then
...
fi
链接地址: http://www.djcxy.com/p/36207.html

上一篇: check two conditions in if statement in bash

下一篇: Comparison of 2 string variables in shell script