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.

Связанный контент