Se deseja expressar o seguinte teste no shell (sh):
if ( a == 1 && ( b == 1 || b == 2 )) { ... }
Até agora, o melhor que pude escrever é o seguinte:
if [[ $a -eq 1 ]]; then
if [[ $b -eq 1 || $b -eq 2 ]]; then
...
fi
fi
Não sei como combinar && e || com precedência correta. O Google não me deu nenhuma resposta (os tutoriais fornecem apenas exemplos básicos, se houver)
Qual é a sintaxe para combinar os dois se em um?
ksh? Então seu código inicial exigiria apenas mais um par de parênteses:if (( a == 1 && ( b == 1 || b == 2 ))); then :; fi