Primeiro, o comando [
só faz comparações. Você tem que realizar cálculos separadamente. Por exemplo:
var1mod=$((var1 % 2))
if [ $var1mod -eq 0 ]; then
No entanto, uma vez que você parece estar escrevendo seu script para o bash, você pode usar um comando diferente e evitar a etapa extra:
if (( var1 % 2 == 0 )); then
E segundo, você não pode encadear comandos com -a
. Isso funciona apenas como um argumento para [
. Mas fora dela, você deve usar &&
.
Três variantes diferentes:
if [ $var1mod -eq 0 -a $var2mod -eq 0 ]; then
if [ $var1mod -eq 0 ] && [ $var2mod -eq 0 ]; then
if (( var1 % 2 == 0 )) && (( var2 % 2 == 0 )); then
if (( var1 % 2 == 0 && var2 % 2 == 0 )); then
Lembre-se sempre de que a sintaxe de if
é um simples if command; then command; fi
. Isso significa que [
in if [
é apenas o nome de um comando como ls
ou echo
.