On Fri, Sep 14, 2007 at 09:40:40AM +0200, Markus Hochholdinger wrote:
> for i in $(seq 0 $((${#SERVER[*]}-1)))
> do
> if RESULT=$(ssh ${SERVER[$i]} "$COMMANDS" 2>&1)
> then
> OLDIFS="$IFS"
> IFS="$SEPARATOR"
> FIELD=( $RESULT )
> IFS="$OLDIFS"
> # save ${FIELD[@]}
> fi &
> done
Hmm, wieso machst Du es so kompliziert?
Geht nicht sowas wie
SERVERS=""
SERVERS="${SERVERS} host1"
# den heute nicht SERVERS="${SERVERS} host2"
SERVERS="${SERVERS} host3"
SERVERS="${SERVERS} host4"
# den auch nicht SERVERS="${SERVERS} host5"
for SERVER in ${SERVERS}; do
ssh $SERVER "$COMMANDS" 2>&1
done |
while IFS="$SEPARATOR" read A B C D E F G H junk; do
# Die einzelnen Felder weiterverarbeiten
echo "FOO|BAR|${A}|${B}..." > ${H}.out
done
Wenn ich irgendwoher "mehrspaltigen" Output bekomme und das Trennzeichen
kenne, dann wende ich immer das Konstrukt
do_something |
while IFS='|' read FOO BAR BLA FASEL junk; do
something_else $FOO $BAR $BLA ...
done
Gruss
Raphael
--
http://mailman.uugrn.org/mailman/listinfo/uugrn