L
locuststar
Grünschnabel
Hi zusammen
für jedes der Elemente in meinem Skript möchte ich eine Aktion starten und bei Erfolg das Element aus dem Array löschen.
Das funktioniert auf die mir einleuchtende Art nur beim ersten Schleifendurchlauf:
###################################
#!/bin/bash
set -x
array=( teller telle tell tel te t )
for i in ${array[@]}
do
unset array[$i]
#array=( ${array[@]} )
echo ${array[@]}
done
#############################
Das echo am Ende spuckt ab dem zweiten Durchgang bis zum Ende "telle tell tel te t"
aus, teller wurde gelöscht.
Wenn ich das array neu definiere (den Kommentar in der Schleife wegnehme) funzt es.
Ich begreife aber nicht warum.
Viele Grüße
tom
für jedes der Elemente in meinem Skript möchte ich eine Aktion starten und bei Erfolg das Element aus dem Array löschen.
Das funktioniert auf die mir einleuchtende Art nur beim ersten Schleifendurchlauf:
###################################
#!/bin/bash
set -x
array=( teller telle tell tel te t )
for i in ${array[@]}
do
unset array[$i]
#array=( ${array[@]} )
echo ${array[@]}
done
#############################
Das echo am Ende spuckt ab dem zweiten Durchgang bis zum Ende "telle tell tel te t"
aus, teller wurde gelöscht.
Wenn ich das array neu definiere (den Kommentar in der Schleife wegnehme) funzt es.
Ich begreife aber nicht warum.
Viele Grüße
tom