Bash - ЕСЛИ и & amp; & amp; синтаксис?

Я мог бы немного помочь с моей ПЧ и & amp; & amp; заявление. Это не работает, и ничего, что я пытаюсь, тоже не работает. Может быть, кто-то может увидеть проблему:

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

Это просто не работает. Кто-нибудь видит проблему?

2
задан 18 March 2015 в 03:28

4 ответа

Попробуйте это:

if [[ "$thisvariable" = "yes" ]] && grep -q 'this string' ./"${thisfile}".txt; then
1
ответ дан 18 March 2015 в 03:28

Эти [ конструкция не может взять несколько условий. То, чего Вы делаете попытку, может быть записано несколькими способами:

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

или, проще

[ "$thisvariable" = "yes" ] && grep 'this string' ./"thisfile" > /dev/null && echo yes
1
ответ дан 18 March 2015 в 03:28

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

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

Осторожность!, отметьте пробел, структурирующий "=".

if [ "$a"="$b" ] is not equivalent to the above.
0
ответ дан 18 March 2015 в 03:28

Я сейчас вижу последнее сообщение, таким образом, я не попробовал это. Я наконец заставил его работать с этим:

if [ $thisvariable == yes ] && [ "`grep 'this string' ./"thisfile"`" ]; then
0
ответ дан 18 March 2015 в 03:28

Другие вопросы по тегам:

Похожие вопросы: