total_pool=1
2
3
4
.
.
.
上面是我的变量名“total_pool”,它在单个列中具有数千个值。并且在每次触发此脚本之前它会不断变化。
我想在循环中解析它的每个单个实体..
问题是这个脚本每5分钟从一个crontab运行一次..
并且在我的top
命令输出中有时候这个查询堆栈!
喜欢/bin/awk -vRS= -vFS="\n" "{print $1}
很长一段时间..
如何阻止这种行为?更好的approch?
注意:我不能使用数组,因为我有太旧的bash版本。它没有阵列支持。
那么从列变量中逐个grep数据的任何更好的方法是什么?
#!/bin/sh
row=1
for POOL in ${total_pool} ;
do
poolid=$(/bin/echo "$total_pool" | /bin/awk -vRS= -vFS="\n" "{print \$$row}"
/usr/local/rrd/bin/rrdtool update /var/graphs/p${poolid}.rrd `NOW`:$upload
row=`expr $row + 1`
done
答案 0 :(得分:1)
听起来像echo's standard output is being buffered。如果stdbuf from coreutils是一个选项,您可能希望使用它来禁用echo
的输出缓冲。