Мы можем сделать несколько сложных операторов условий в скобках типа [[ ]]
или (( ))
.
например:
a=3;b=4;c=4
if [[ 1 == 1 && ( ( $a == $b && 1 == 1 ) || ( $b == $c && 2 == 2)) ]];
then echo yes;
else echo no;
fi
если мы рассмотрим эквивалент этого с использованием исполняемых команд, которые возвращают ошибку, я не уверен, что делать дальше. В случае цепочки 'и' это тривиально:
if echo hello | grep -q "h" && stat /etc/os-release 2>/dev/null;
then echo yes;
else echo no;
fi
Что если у меня есть несколько веток? как в первом примере, который я привел.
Вопрос по сути сводится к тому, как мне создавать группы команд? Скобки, которые я использовал в первом условии, похоже, работают только внутри блока [[ ]]
.
В качестве дополнительного вопроса, мой подход здесь глуп?
Я знаю, что могу делать то, что хочу, с кучей утверждений «если», но я подумал, что это будет выглядеть ужасно.
Суть того, что я пытаюсь сделать, состоит в том, чтобы выполнить серию проверок, которые должны выполняться последовательно и с одной ветвью, на основе оценки переменной.
Большое спасибо