Calcular uma variável que dependa de um valor que varia e por uma constante

1. Calcular uma variável que dependa de um valor que varia e por uma constante

Flávio Olimpio Sanches Neto
flavio_olimpo

(usa Outra)

Enviado em 11/03/2018 - 21:50h

Boa noite, Pessoal

Estou precisando calcular uma variável que dependa de uma temperatura que varia de 200 a 1000 de 100 em 100 e 1200 a 4000 de 200 em 200 e de um valor constante (que eu busco num arquivo) , ou seja, var= temperatura/constante. Estou tentando fazer com o while, no entanto, dá o seguinte erro: (standard_in) 1: illegal character: ^M

o script que estou fazendo é dá seguinte forma:
__________________________________________________________________________________________________

#!/bin/bash

t1=200
while [ ${t1} -le 1000 ]
do

rt=` awk '/Rotational temperature/ {print $NF}' HCl.out `

Qr1= `echo "scale=4;${t1}/${rt}"|bc -l `

echo "${Qr1}"

t1=`expr ${t1} + 100 `

done

t2=1200
while [ ${t1} -le 4000 ]
do

rt=` awk '/Rotational temperature/ {print $NF}' HCl.out `

Qr2= `echo "scale=4;${t2}/${rt}"|bc -l `

echo "${Qr2}"

t2=`expr ${t2} + 100 `

done

__________________________________________________________________________________________________

Att,

Flávio Olimpio


  


2. Re: Calcular uma variável que dependa de um valor que varia e por uma constante

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 12/03/2018 - 10:22h

Tinha alguns espaços indevidos nas variáveis gerando erros, fiz outras correções bobas, compare aí. Agora tá funcional:
#!/bin/bash

t1=200
while [ ${t1} -le 1000 ]
do
rt=`awk '/Rotational temperature/ {print $NF}' HCl.out`
Qr1=`echo "scale=4;${t1}/${rt}"|bc -l`
echo "${Qr1}"
t1=`expr ${t1} + 100`
done

t2=1200
while [ ${t2} -le 4000 ]
do
rt=`awk '/Rotational temperature/ {print $NF}' HCl.out`
Qr2=`echo "scale=4;${t2}/${rt}"|bc -l`
echo "${Qr2}"
t2=`expr ${t2} + 200`
done



3. Re: Calcular uma variável que dependa de um valor que varia e por uma constante

Flávio Olimpio Sanches Neto
flavio_olimpo

(usa Outra)

Enviado em 12/03/2018 - 11:50h

Bom dia,

Mesmo assim dá o seguinte erro: (standard_in) 1: illegal character: ^M

Att,

Flávio Olimpio


4. Re: Calcular uma variável que dependa de um valor que varia e por uma constante

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 12/03/2018 - 13:18h

Mostre a saída desse comando:
awk '/Rotational temperature/ {print $NF}' HCl.out 



5. Re: Calcular uma variável que dependa de um valor que varia e por uma constante

Flávio Olimpio Sanches Neto
flavio_olimpo

(usa Outra)

Enviado em 12/03/2018 - 19:18h

Boa noite,

a linha toda tem essa saída:
"Rotational temperature (Kelvin) 15.09743 "
sendo que o que eu quero é a ultima coluna: 15.09743
Não sei se pelo fato de ser do type(booleana) pode provocar um erro. Se eu fizer separado usando apenas para um determinado valor dá certo, só quando uso o while que a calculado bc fornece esse erro.

Att,

Flávio Olimpio



6. Re: Calcular uma variável que dependa de um valor que varia e por uma constante

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 12/03/2018 - 20:07h

Bem, as simulações que fiz aqui funcionam. Não sei o que pode está diferente aí :\


7. Re: Calcular uma variável que dependa de um valor que varia e por uma constante

Flávio Olimpio Sanches Neto
flavio_olimpo

(usa Outra)

Enviado em 12/03/2018 - 21:33h

Boa noite,

Eu estou usando o ubuntu no Windows 10, imagino que seja isso, fiz algumas simulações em um terminal online e deu certo também. De qualquer forma muito obrigado!





8. Re: Calcular uma variável que dependa de um valor que varia e por uma constante

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 12/03/2018 - 23:03h

flavio_olimpo escreveu:

Boa noite, Pessoal

Estou precisando calcular uma variável que dependa de uma temperatura que varia de 200 a 1000 de 100 em 100 e 1200 a 4000 de 200 em 200 e de um valor constante (que eu busco num arquivo) , ou seja, var= temperatura/constante. Estou tentando fazer com o while, no entanto, dá o seguinte erro: (standard_in) 1: illegal character: ^M

o script que estou fazendo é dá seguinte forma:
__________________________________________________________________________________________________

#!/bin/bash

t1=200
while [ ${t1} -le 1000 ]
do

rt=` awk '/Rotational temperature/ {print $NF}' HCl.out `

Qr1= `echo "scale=4;${t1}/${rt}"|bc -l `

echo "${Qr1}"

t1=`expr ${t1} + 100 `

done

t2=1200
while [ ${t1} -le 4000 ]
do

rt=` awk '/Rotational temperature/ {print $NF}' HCl.out `

Qr2= `echo "scale=4;${t2}/${rt}"|bc -l `

echo "${Qr2}"

t2=`expr ${t2} + 100 `

done

__________________________________________________________________________________________________

Att,

Flávio Olimpio


Boa noite Flavio.
Segue sugestão para a temperatura 200 a 1000 (tp1):
rt=$(awk '/Rotational temperature/ {print $NF}' HCl.out)
for tp1 in $(seq 200 100 1000);do bc <<< "scale=4;$tp1/$rt";done
13.2472
19.8709
26.4945
33.1182
39.7418
46.3655
52.9891
59.6127
66.2364


Simplificando:
rt="15.09743"
awk 'BEGIN { for (t1=200;t1<=1000;t1+=100) print t1/'$rt'}'
Ou
awk 'BEGIN {rt="15.09743"; for (t1=200;t1<=1000;t1+=100) print "T1="t1 " => "t1/rt}'
T1=200 => 13.2473
T1=300 => 19.8709
T1=400 => 26.4946
T1=500 => 33.1182
T1=600 => 39.7419
T1=700 => 46.3655
T1=800 => 52.9892
T1=900 => 59.6128
T1=1000 => 66.2364

Att.:
Marcelo Oliver






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts