A matemática em bash
deve ser executada em arithmetic context
. Em sua implementação atual, você está fornecendo "$ n", "%" e "2" como argumentos para [
, que não executa matemática. Aqui está um exemplo que executa o contexto aritmético de matemática n:
if [ "$((n % 2))" -eq 0 ]
No exemplo acima, os resultados do $(())
são expandidos pelo shell antes de serem vistos pelo comando [
. Você pode simplificar isso removendo a chamada para [
:
if (( (n % 2) == 0 ))