我正在尝试提取 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 语句。