我想创建一个Bash别名以显示系统信息(类似于screenfetch或neofetch,但较轻)。 当前的代码是:
function info {
echo
kernel=$(uname -s -r)
echo $kernel"."
echo
packages=$(pacman -Qq | wc -l)
echo $packages "packages."
echo
df /dev/mmcblk1p2 -h
echo
sensors coretemp-isa-0000 -A
}
结果是:
Linux 5.2.0-arch2-1-ARCH.
927 packages.
Filesystem Size Used Avail Use% Mounted on
/dev/mmcblk1p2 57G 26G 29G 48% /
coretemp-isa-0000
Package id 0: +46.0°C (high = +105.0°C, crit = +105.0°C)
Core 0: +46.0°C (high = +105.0°C, crit = +105.0°C)
Core 1: +46.0°C (high = +105.0°C, crit = +105.0°C)
Core 2: +45.0°C (high = +105.0°C, crit = +105.0°C)
Core 3: +45.0°C (high = +105.0°C, crit = +105.0°C)
我想将df和sensors输出的一部分加载到另一个变量中。
对于df:我要提取Size,Used,Avail和Use%的值以显示:磁盘具有$ disk_size。已使用$ disk_percent($ used)。 $ disk_avail是免费的。
对于传感器:我想提取“ Package id 0”的值来显示:CPU具有$ cpu_temperature。
答案 0 :(得分:0)
您可以获取信息作为函数的一部分,并将其存储在变量中,而不是尝试从函数输出中获取信息,如下面的diskInfo
和cpuTempInfo
所示:
function info {
echo
kernel=$(uname -s -r)
echo $kernel"."
echo
packages=$(pacman -Qq | wc -l)
echo $packages "packages."
echo
df /dev/mmcblk1p2 -h
diskInfo=$(df /dev/mmcblk1p2 -h | awk 'FNR > 1 { print "Disk Size:" $2 " with " $3 " used. " $4 " available " $5 " of disk used " }')
echo $diskInfo
echo
sensors coretemp-isa-0000 -A
cpuTempInfo=$(sensors coretemp-isa-0000 -A | awk 'FNR == 2 { print $4 }'
echo $cpuTempInfo
}
echo $diskInfo
Disk Size:57G with 26G used. 29G available 48% of disk used
echo $cpuTempInfo
+46.0°C