shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Calculo com variáveis


From: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] Calculo com variáveis
Date: Wed, 14 Feb 2007 16:46:51 -0200

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 <address@hidden> 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 <address@hidden<tiago.peczenyj%40gmail.com>
> >
> Para: address@hidden <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]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]