1
total_pool=1
2
3
4
.
.
.

上面是我的变量名“total_pool”,它在单个列中具有数千个值。并且在每次触发此脚本之前它都会不断变化。我想在一个循环中解析它的每个实体。问题是这个脚本每 5 分钟从一个 crontab 运行一次。在我的top命令输出中,这个查询有时会堆叠!喜欢/bin/awk -vRS= -vFS="\n" "{print $1} 了很长时间..如何阻止这种行为?有更好的方法吗?注意:我不能使用数组,因为我的 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
4

1 回答 1

1

听起来像echo 的标准输出正在被缓冲。如果coreutils 中的 stdbuf是一个选项,您可能希望使用它来禁用echo的输出缓冲。

于 2013-07-10T11:58:39.453 回答