Você só precisa fazer isso
stdbuf -oL jack_cpu_load |
grep --line-buffered "jack DSP load" |
stdbuf -oL cut -d' ' -f4 |
while read line; do echo "$line" > /tmp/buffer; done &
para gerar o valor que você insere sem modificações.
Isso está relacionado a Script de shell muito lento para saída para Conky
Este código é quase perfeito:
stdbuf -oL jack_cpu_load \
| grep --line-buffered "jack DSP load" \
| stdbuf -oL cut -d' ' -f4 \
| while read line; do
echo "scale=0; $line*100/1" | bc -l > /tmp/buffer
done &
O único problema é que bc
remove o ponto decimal e zero quando a saída é < 1.
Eu gostaria de ver dois lugares após o ponto decimal, mas sem frações, com um zero para a saída < 1 estaria bem.
Acho que se você adicionar o scale=
para que ele tenha um valor maior que 0
, você verá números decimais exibidos.
$ echo "scale=0; 100*100/1" | bc -l
10000
$ echo "scale=2; 100*100/1" | bc -l
10000.00
O uso de $line*100/1
com o 100/1
parece desnecessário. Tire essa parte. Multiplicar $line
por 100 está desviando seus resultados por 2 casas decimais.
Tags bc shell-script