Bash - IF 和 && 语法?

Bash - IF 和 && 语法?

我需要一些关于 IF 和 && 语句的帮助。它不起作用,我尝试的所有方法也不起作用。也许有人能看到这个问题:

if [[ $thisvariable="yes" && grep 'this string' ./"$thisfile".txt ]]; then

这根本行不通。有人发现问题了吗?

答案1

尝试这个:

if [[ "$thisvariable" = "yes" ]] && grep -q 'this string' ./"${thisfile}".txt; then

答案2

我现在才看到最后一篇文章,所以我没有尝试。我终于用这个让它工作了:

if [ $thisvariable == yes ] && [ "`grep 'this string' ./"thisfile"`" ]; then

答案3

构造[不能采用多个条件。您尝试的内容可以用多种方式编写:

if [ "$thisvariable" = "yes" ] && grep 'this string' ./"thisfile" > /dev/null
then 
    echo yes; 
fi

或者更简单来说

[ "$thisvariable" = "yes" ] && grep 'this string' ./"thisfile" > /dev/null && echo yes

答案4

从:http://tldp.org/LDP/abs/html/comparison-ops.html#SCOMPARISON1

if [ "$a" = "$b" ]

小心!请注意“=”周围的空格。

if [ "$a"="$b" ] is not equivalent to the above.

相关内容