回声-n失败,管道功能

问题描述 投票:0回答:1

我有点小白所以忍耐一下:

我有一个非常基本的脚本来检查RPI的CPU温度,我需要在同一行输出作为与一个网络挂接信使服务报告的要求。输出应该类似于 “54.0°C,129.2°F”。我知道开关追加到回声,-n现有生产线,但因为我的管道华氏转换到bash的钙(BC),我得到一个语法错误,如果我尝试启动该行以“回声-n等。”

我也意识到,我并不真的需要打印°C和°F,但我要求奢华!

这里是我的脚本(如果我不尝试补习班这一切在同一行其中工程神话般):

#!/bin/bash
(
cpuTemp0=$(cat /sys/class/thermal/thermal_zone0/temp)
cpuTemp1=$(($cpuTemp0/1000))
cpuTemp2=$((cpuTemp0/100))
cpuTempM=$(($cpuTemp2 % cpuTemp1))
#date
#echo cpu temp in °C and °F
echo -n $cpuTemp1"."$cpuTempM
echo -n "°C,"
echo -n "$cpuTemp1 * 1.8 + 32"|bc
echo "°F"
) > /home/pi/bin/tlog

我收到有错误:

(standard_in) 1: syntax error

所以,问题是这样的;我如何才能在°F在同一行作为转换公式不borking的| BC功能?我肯定的| BC是问题,因为脚本运行正常,如果我删除它,但它不为我做数学题。 =(

任何帮助表示赞赏,感谢。

bash unix echo raspberry-pi3 raspberry-pi2
1个回答
1
投票

正如你已经发现,bc想要一个正确端接线路。那么,为什么我们不给它一个?

我们可以重新安排你的代码先完成所有的计算,然后在年底做一个单一的回声:

#!/bin/bash

cpuTemp0=$(cat /sys/class/thermal/thermal_zone0/temp)
cpuTemp1=$(($cpuTemp0/1000))
cpuTemp2=$((cpuTemp0/100))
cpuTempM=$(($cpuTemp2 % cpuTemp1))
tempF=$(echo "$cpuTemp1 * 1.8 + 32"|bc)

echo -n "${cpuTemp1}.${cpuTempM}°C,${tempF}°F" > /home/pi/bin/tlog
© www.soinside.com 2019 - 2024. All rights reserved.