0
所以我有一些问题声明一个数组的变量。 我想为每个数组迭代确定两个变量(STATUS和CONSUMERS)。在数组中声明变量
#!/bin/bash
QUEUE=(outbound.queue, inbound.queue, outbound.queue.optin)
DATE="$(date)"
MESSAGE="${QUEUE[$i]} is active with no Consumers at $DATE"
DESC="Please check rabbitmq for info on $HOSTNAME"
ALIAS="${QUEUE[$i]} $HOSTNAME"
for i in "${QUEUE[@]}"; do
STATUS[$i]=$(sudo /usr/sbin/rabbitmqctl list_queues name status | grep "^${QUEUE[@]}\s" | sed "s/${QUEUE[@]}\s//")
CONSUMERS[$i]=$(sudo /usr/sbin/rabbitmqctl list_queues name consumers | grep "^${QUEUE[@]}\s" | sed "s/${QUEUE[@]}\s//")
if [ "${STATUS[$i]}" = "running" ];
then
echo "$QUEUE[$i] is running";
if [ "${CONSUMERS[$i]}" = "0" ];
then
lamp createAlert;
fi
else
echo "$QUEUE is not running";
fi
done
什么最终以眼下的情况是要么(取决于@或*在$ QUEUE []为)尝试使用所有变量的一次,或用 line 13: outbound.queue: syntax error: invalid arithmetic operator (error token is ".queue")
任何帮助,将不胜感激:)
echo“$ QUEUE [$ i] running”is wrong because you must use braces:$ {QUEUE [$ i]} – Jdamian 2014-10-30 12:12:08