该系统是运行当前 Raspbian“buster”的 Raspberry Pi。
可以使用以下方法获取 CPU 温度:
$ vcgencmd measure_temp
temp=53.0'C
可以'
替换为°
使用sed
:
$ vcgencmd measure_temp | sed "s/'/°/"
temp=52.0°C
但我更愿意使用tr
似乎是“更轻量级”的替代品来做到这一点sed
。
我已经尝试过以下操作tr
:
$ vcgencmd measure_temp | tr ' ° # nope
$ vcgencmd measure_temp | tr \' \° # nope
temp=53.0�C
# Yet, this works:
$ vcgencmd measure_temp | tr \' d
temp=52.0dC
$
我缺少什么?度数符号需要特别注意吗?
答案1
如果您引用其中的学位字符tr
应该有效:
$ vcgencmd measure_temp | tr \' '°'
编辑:我刚刚测试过这个,tr
确实有点奇怪......
$ echo "asdf'" | tr \' '°'
asdf�
$ TEST="asdf'"; echo ${TEST/\'/°}
asdf°
请注意:上述 shell 字符串操作可能不适用于所有 shell 解释器。我知道它可以在 bash 中工作,@fra-san 提到它至少可以在 ksh93、mksh、yash、zsh 下工作。所以它比我最初想象的更便携。
最后,根据上面 @fra-san 的评论,当前 Coreutils 文档仍然声明“当前 tr 完全支持仅单字节字符”。