Como passar resultados de bc para uma variável

14

Estou escrevendo um script e gostaria de passar os resultados de bc para uma variável. Eu declarei 2 variáveis ( var1 e var2 ) e dei a elas valores. Em meu script, quero passar os resultados de bc para outra variável, digamos var3 , para que eu possa trabalhar com var3 para outros cálculos. Até agora, consegui gravar o resultado em um arquivo que não é o que estou procurando e também consegui ecoar o resultado no terminal, mas só quero passar o resultado para uma variável no momento, para que Eu posso trabalhar com essa variável.

echo "scale=2;$var1/var2" | bc
    
por shaolin 15.12.2012 / 22:59

2 respostas

20

Se você estiver usando o bash, é melhor usar uma string aqui em vez de um pipe como em:

bc <<< "scale=2;$var1/$var2"

Isso economizará uma subcala.

Em seguida, para armazenar a saída de um comando, use uma substituição de comando:

answer=$(bc <<< "scale=2;$var1/$var2")

Editar.

Se você quer algo ainda mais legal que bc , aqui está a dc (calculadora de polimento inverso):

answer=$(dc <<< "2k $var1 $var2/p")
    
por gniourf_gniourf 15.12.2012 / 23:07
7

A substituição de comandos armazena a saída de um comando em uma variável. / p>

var3=$(echo "scale=2;$var1/$var2" | bc)
    
por Gilles 15.12.2012 / 23:04