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

MLS*_*LSC 4 bash conditional if-statement

如果声明我写的有问题

var1=`COMMAND | grep <Something>`
if [ -n "$var1" ] && if [[ "$var1" != string ]]; then
    .
    .
    .
fi
Run Code Online (Sandbox Code Playgroud)

我想写if if语句检查:

如果var1不为null 并且如果string(可能是helloword)不在var1中那么就做.

我怎样才能做到这一点?

fed*_*qui 5

只需使用这样的东西:

if [ -n "$var1" ] && [[ ! $var1 == *string* ]]; then
...
fi
Run Code Online (Sandbox Code Playgroud)

看一个例子:

$ v="hello"
$ if [ -n "$v" ] && [[ $v == *el* ]] ; then echo "yes"; fi
yes
$ if [ -n "$v" ] && [[ ! $v == *ba* ]] ; then echo "yes"; fi
yes
Run Code Online (Sandbox Code Playgroud)

第二个条件是bashString包含的变量.

  • 还有`![[$ var1 ==*string*]]`和`[[$ var1!=*string*]]`.选项比比皆是:) (4认同)