我有文件node_avg.in。因此AVAIL_NODE应该计算此文件每5分钟更改一次值。请帮助
[root@localhost sample]# cat node_avg.in
QUEUE_NAME | ALLOC_NODES | RUN_NODES | AVAIL_NODE
team1 | 2384 | 1019 | xxx
team2 | 300 | 280 | xxx
team3 | 90 | 0 | xx
team4 | 240 | 236 |
team5 | 90 | 27 |
team6 | 120 | 0 |
team7 | 270 | 146 |
我刚试过,但无法帮助。请看下面的脚本
[root@localhost sample]# cat avg.in
for i in team1 team2 team3 team4 team5 team6 team7
do
ALLOC_NODES=$( cat /root/script/sample/node_avg.in | grep $i | grep -v QUEUE_NAME | awk '{print $3}')
RUN_NODES=$(cat /root/script/sample/node_avg.in | grep $i | grep -v QUEUE_NAME | awk '{print $5}')
avail=$($ALLOC_NODES - $RUN_NODES)
done
[root @ localhost sample]#
答案 0 :(得分:1)
您必须使用双(
)
来评估表达式:
avail=$(($ALLOC_NODES - $RUN_NODES))
答案 1 :(得分:1)
您可以更轻松地使用某些内容,awk -F\| '{ print $1 $2-$3}'
为您进行计算。
cat node_avg.in | awk -F\| '{ print $1 $2-$3}' | tail -n +2
team1 1365
team2 20
team3 90
team4 4
team5 63
team6 120
team7 124