Fazendo Cálculo com Números Decimais em Shell Script Usando o bc

Olha vou dizer que essa deu dor de cabeça….

Estava eu pensando em criar um script … um check list com algumas informações relevantes para fazer um tuning em alguns bancos PostgreSQL.

Até ai tudo bem né .. o Shell Script da conta do recado. O que eu não contava é que o Shell Script trata tudo, seja la o que for, como texto.

Ai é que a porca começa a torcer o rabo, porque como eu vou fazer meu cálculo se no meio da expressão numérica tem números decimais????

Depois de muito queimar a mufa fui obrigada a pedir ajudar não aos universitários, mas sim para um cara fudaster chamado Julio Cezar Neves. É isso ai minha gente .. falou em Shell Script, ele é o cara. Obrigado Pela Ajuda Julio !!!!!

Bem, ele me ajudou com o tal cálculo falando da utilização do bc e também uma informação que é de extrema importância. O caractér usado para decimal conta na hora do cálculo, ou seja, um número decimal é interpretado através do . e não da , (isso depende do locale do S.O mas preferi nem mexer pra não feder mais)

Enfim, depois de muita luta e um olho roxo o cálculo saiu. O Script ainda não esta pronto, mas assim que tiver eu posto ele aqui.

Segue abaixo um exemplo de cálculo de expressões numéricas com decimais usando Shell Script !!!

shared=`cat $PRODUCAO/postgresql.conf | grep shared_buffers |awk ‘{print $3}’`

connection=`cat $PRODUCAO/postgresql.conf | grep max_connections |awk ‘{print $3}’`

calculo=`echo “scale=2; ((250 + 8.2 * $shared + 14.2 * $connection) * 1024) ” | bc`

echo $shared 185000
echo $connection 100
echo $calculo 1555118080.0

É isso ai minha gente …

Kenia Milene