系统信息 - bash 脚本

系统信息 - bash 脚本

我正在尝试提取 RX 数据包、CPU 供应商和型号以及 CPU MHz。

这是我的脚本:

#!/bin/bash
#systemstat

case $1="-r"
COUNT='ifconfig eth0 | grep 'RX packets:' | cut -d: -f2 | awk '{print $1}''
DATE='date +"%H:%M:%S"' echo "Time" $'\t' $'\t' "Total Packets eth0" echo $DATE $'\t' $'\t'$COUNT ;; "-c"
VENDOR='cat /proc/cpuinfo | grep 'vendor_id' | cut -d: -f2 | awk '{print $1}''
MODEL='cat /proc/cpuinfo |grep 'model name' | cut -d: -f2' CPU='more /proc/cpuinfo | grep 'cpu MHz' | cut -d:$

*) echo

;; esac

我收到以下错误:

./systemstat: line 6: syntax error near unexpected token `COUNT='ifconfig eth0 | grep 'RX'
./systemstat: line 6: `COUNT='ifconfig eth0 | grep 'RX packets:' | cut -d: -f2 | awk '{print $1}'' '

有人可以帮忙吗?

谢谢你!

答案1

说实话,你的脚本很乱。在开始编写 bash 脚本之前,你应该先阅读类似以下内容的内容:Bash 初学者指南

现在,你的脚本看起来应该是这样的:

#!/bin/bash
#systemstat

case $1 in
"-r")
    COUNT=`ifconfig eth0 | grep 'RX packets:' | cut -d: -f2 | awk '{print $1}'`
    DATE=`date +"%H:%M:%S"`
    echo -e "Time\t\tTotal Packets eth0" 
    echo -e "$DATE\t\t$COUNT"
    ;; 
"-c")
    VENDOR=`cat /proc/cpuinfo | grep 'vendor_id' | cut -d: -f2 | awk 'NR==1'`
    MODEL=`cat /proc/cpuinfo | grep 'model name' | cut -d: -f2 | awk 'NR==1'` 
    MHZ=`more /proc/cpuinfo | grep 'cpu MHz' | cut -d: -f2 | awk 'NR==1'`
    echo -e "CPU Model:\n $MODEL" 
    echo -e "Vendor:\n $VENDOR" 
    echo -e "MHZ:\n $MHZ" 
    ;;

*) 
    echo -e "Usage: `basename $0` OPTION\n\tOPTIONS:\n\t\t-r -> some explanation\n\t\t-c -> some explanation"
    ;; 
esac

也可以看看:使用 case 语句

相关内容