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'