p=$( power )
echo "Power now: ${p}W"
印刷
Wower now: 357
这毫无意义。这肯定是一个错误吗?
答案1
Wower now: 357
啊,是的,这实际上是以下序列,一个字节接一个字节
P (0x50)
o (0x6f)
w (0x77)
e (0x65)
r (0x72)
(0x20)
n (0x6e)
o (0x6f)
w (0x77)
: (0x3a)
(0x20)
3 (0x33)
5 (0x35)
7 (0x37)
jump-back-to-beginning-of-line (0x0d) ## called "carriage return", if you know typewriters…
W (0x57)
因此,您的power
命令出于人类未知的原因输出357\r
(回车)。
解决方案:只打印来自 的实际数字power
,例如:
p=$( power | grep -o '[[:digit:]]*' )
echo "Power now: ${p}W"
或更紧凑:
power | sed -n 's/^\([[:digit:]]*\).*$/Power now: \1 W/p'