计算
#! /bin/sh
while true
do
mems=`top -b -n 1|grep -E '18148|18171|18605|18562' |awk -F" " '{print $(NF-6)}'`
cpus=`top -b -n 1|grep -E '18148|18171|18605|18562|24334' |awk -F" " '{print $(NF-3)}'`
memSum=0
for mem in ${mems[*]};do
memInt=`echo $mem|bc`
memSum=`echo "$memSum+$memInt"|bc`
done
#echo "mem: "$memSum
cpuSum=0
for cpu in ${cpus[*]};do
cpuInt=`echo $cpu|bc`
cpuSum=`echo "$cpuSum+$cpuInt"|bc`
done
echo "cpu: "$cpuSum " mem: "$memSum
sleep 2
done
数字的运算可使用let、(( )) ,其中运算时不需要变量$符号,运算符为 +、-、*、/、% ,不建议使用expr
数字的比较使用 (( )) ,其运算符 >、>=、<、<=、==、!=
使用 (( )) 时,不需要空格分隔各值和运算符,使用 [[ ]] 时需要用空格分隔各值和运算符。
字符表达式的比较使用 [[ ]] ,其运算符 =、!=、-n、-z
#! /bin/sh
a=1234
if ((a==1234));then // 其中运算时不需要变量$符号, 不需要空格分隔各值和运算符
echo 111
fi
#! /bin/sh
a="1234"
if [[ $a == "1234" ]];then //其中比较时需要变量$符号, 需要空格分隔各值和运算符
echo 111
fi

浙公网安备 33010602011771号