用cat读取文件遇到warning: command subst

2019-11-15  本文已影响0人  苍蝇的梦

2019-11-14 遇到的一点小问题
今天需要获取树莓派的版本提供给前端,网上搜到两个方法cat /proc/cpuinfocat /proc/device-tree/model

[root@archlinux ~]# cat /proc/cpuinfo
processor       : 0
model name      : ARMv7 Processor rev 4 (v7l)
BogoMIPS        : 38.40
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4

processor       : 1
model name      : ARMv7 Processor rev 4 (v7l)
BogoMIPS        : 38.40
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4

processor       : 2
model name      : ARMv7 Processor rev 4 (v7l)
BogoMIPS        : 38.40
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4

processor       : 3
model name      : ARMv7 Processor rev 4 (v7l)
BogoMIPS        : 38.40
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4

Hardware        : BCM2835
Revision        : a22082
Serial          : 00000000ce5a251a
Model           : Raspberry Pi 3 Model B Rev 1.2
[root@archlinux ~]# ^C
[root@archlinux ~]# ^C
[root@archlinux ~]# ^C
[root@archlinux ~]# cat /proc/device-tree/model 
Raspberry Pi 3 Model B Rev 1.2[root@archlinux ~]# ^C
[root@archlinux ~]# ^C

第一个方法获取的参数太多了,所以使用第二个。但是当我用变量来接收输出时,出现一句警告提示:-bash: warning: command substitution: ignored null byte in input

[root@archlinux ~]# model=`cat /proc/device-tree/model`
-bash: warning: command substitution: ignored null byte in input
[root@archlinux ~]# echo $model
Raspberry Pi 3 Model B Rev 1.2

看了下/proc/device-tree/model文件,顺便查了下格式。

[root@archlinux ~]# file /proc/device-tree/model
/proc/device-tree/model: ASCII text, with no line terminators
/proc/device-tree/model
网上搜了下,没找到解决办法。只能再翻翻cat的manpages看看,不过信息太少了,看不出什么,只能挨个试试。
没想到试到cat -v竟然可以。贴一下:
name=$(cat -v /proc/device-tree/model | sed 's/ Model //g' | sed 's/ Plus/+/g')
echo "${name}"
####输出内容#####Raspberry Pi 4B Rev 1.1^@#####
echo "${name%% Rev*}"
####输出内容#####Raspberry Pi 4B#####
上一篇下一篇

猜你喜欢

热点阅读