Ola Isso é limitação do Bash, ele só trabalha com inteiros
terias q usar o bc ou awk para obter um resultado mais satisfatorio. Acho que o zsh possui precisão de ponto flutuante mas teria q confirmar. On 2/14/07, Willians Antunes <[EMAIL PROTECTED]> wrote: > > Tiago, > > Muito obrigado pela ajuda a linha ficou a seguinte: > > echo $((($memtotal - ($memused + $bufused))*100/$memtotal)) > > A única coisa que gostaria de fazer pra ficar perfeito e que ainda nõa > consegui é fazer com que a saída tenha duas casas decimais. > > Atenciosamente, > > Willians > > ----- Mensagem original ---- > De: Tiago Barcellos Peczenyj <[EMAIL PROTECTED]<tiago.peczenyj%40gmail.com> > > > Para: [email protected] <shell-script%40yahoogrupos.com.br> > Enviadas: Terça-feira, 13 de Fevereiro de 2007 16:46:33 > Assunto: Re: [shell-script] Calculo com variáveis > > > Ola, vc pode usar bc + here strings > > bc <<< "scale=10(( ${memtotal} -( ${memfree} + ${buffree})) / ${memtotal}) > *100" > > ou awk puro, usando NR para identificar a linha ;) > > awk 'NR==2{ m_total = $2; m_livre = $4;} > > NR == 3{ b_livre = $4} > > END{ > > print "o resultado eh: ",100*((m_total - (m_livre + b_livre))/m_ total) > > }' saida.out > > On 2/13/07, williansantunes <williansantunes@ yahoo.com. br> wrote: > > > > > > > > > > > > > > > > > > > > > Olá pessoal, > > > > > > Estou com a seguinte necessidade. Preciso obter o resultado da > > > expressão abaixo: > > > > > > topmem = ((memtotal -(memfree+buffree) )/memtotal) *100 > > > > > > as variáveis foram declaradas assim: > > > > > > memtotal=`head -2 saida.out |tail -1 |awk '{print $2}'` > > > memused=`head -2 saida.out |tail -1 |awk '{print $3}'` > > > memfree=`head -2 saida.out |tail -1 |awk '{print $4}'` > > > > > > bufused=`head -3 saida.out |tail -1 |awk '{print $3}'` > > > buffree=`head -3 saida.out |tail -1 |awk '{print $4}'` > > > > > > swaptotal=`head -4 saida.out |tail -1|awk '{print $2}'` > > > swapused=`head -4 saida.out |tail -1|awk '{print $3}'` > > > swapfree=`head -4 saida.out |tail -1|awk '{print $4}'` > > > > > > Qual a melhor maneira de fazer isso? BC? Expr? outra ? > > > > > > Abraços! E desde já muito obrigado! > > > > > > Willians > > > > > > > > -- > > Tiago B Peczenyj > > Linux User #405772 > > # cd /pub > > # more beer > > <!-- > > #ygrp-mlmsg {font-size:13px;font-family:arial,helvetica,clean,sans-serif;} > #ygrp-mlmsg table {font-size:inherit;font:100%;} > #ygrp-mlmsg select, input, textarea {font:99% > arial,helvetica,clean,sans-serif;} > #ygrp-mlmsg pre, code {font:115% monospace;} > #ygrp-mlmsg * {line-height:1.22em;} > #ygrp-text{ > font-family:Georgia; > } > #ygrp-text p{ > margin:0 0 1em 0; > } > #ygrp-tpmsgs{ > font-family:Arial; > clear:both; > } > #ygrp-vitnav{ > padding-top:10px; > font-family:Verdana; > font-size:77%; > margin:0; > } > #ygrp-vitnav a{ > padding:0 1px; > } > #ygrp-actbar{ > clear:both; > margin:25px 0; > white-space:nowrap; > color:#666; > text-align:right; > } > #ygrp-actbar .left{ > float:left; > white-space:nowrap; > } > .bld{font-weight:bold;} > #ygrp-grft{ > font-family:Verdana; > font-size:77%; > padding:15px 0; > } > #ygrp-ft{ > font-family:verdana; > font-size:77%; > border-top:1px solid #666; > padding:5px 0; > } > #ygrp-mlmsg #logo{ > padding-bottom:10px; > } > > #ygrp-vital{ > background-color:#e0ecee; > margin-bottom:20px; > padding:2px 0 8px 8px; > } > #ygrp-vital #vithd{ > font-size:77%; > font-family:Verdana; > font-weight:bold; > color:#333; > text-transform:uppercase; > } > #ygrp-vital ul{ > padding:0; > margin:2px 0; > } > #ygrp-vital ul li{ > list-style-type:none; > clear:both; > border:1px solid #e0ecee; > } > #ygrp-vital ul li .ct{ > font-weight:bold; > color:#ff7900; > float:right; > width:2em; > text-align:right; > padding-right:.5em; > } > #ygrp-vital ul li .cat{ > font-weight:bold; > } > #ygrp-vital a { > text-decoration:none; > } > > #ygrp-vital a:hover{ > text-decoration:underline; > } > > #ygrp-sponsor #hd{ > color:#999; > font-size:77%; > } > #ygrp-sponsor #ov{ > padding:6px 13px; > background-color:#e0ecee; > margin-bottom:20px; > } > #ygrp-sponsor #ov ul{ > padding:0 0 0 8px; > margin:0; > } > #ygrp-sponsor #ov li{ > list-style-type:square; > padding:6px 0; > font-size:77%; > } > #ygrp-sponsor #ov li a{ > text-decoration:none; > font-size:130%; > } > #ygrp-sponsor #nc { > background-color:#eee; > margin-bottom:20px; > padding:0 8px; > } > #ygrp-sponsor .ad{ > padding:8px 0; > } > #ygrp-sponsor .ad #hd1{ > font-family:Arial; > font-weight:bold; > color:#628c2a; > font-size:100%; > line-height:122%; > } > #ygrp-sponsor .ad a{ > text-decoration:none; > } > #ygrp-sponsor .ad a:hover{ > text-decoration:underline; > } > #ygrp-sponsor .ad p{ > margin:0; > } > o {font-size:0;} > .MsoNormal { > margin:0 0 0 0; > } > #ygrp-text tt{ > font-size:120%; > } > blockquote{margin:0 0 0 4px;} > .replbq {margin:4;} > --> > > __________________________________________________ > Fale com seus amigos de graça com o novo Yahoo! Messenger > http://br.messenger.yahoo.com/ > > [As partes desta mensagem que não continham texto foram removidas] > > > -- Tiago B Peczenyj Linux User #405772 # cd /pub # more beer [As partes desta mensagem que não continham texto foram removidas]
