Bash, arrays og white space
Hej alle.Nu står jeg med et lidt underligt problem igen.
Jeg er ved at lave et script, som skal kunne håndtere et array, som er oprettet med output data fra et andet program. Sagen er desværre, at disse data indeholder (kan indeholde..) mellemrum, hvilket giver mig lidt problemet med at få adskildt disse data korrekt. Her er et stykke af koden:
...
full_list=`<kommando som outputter listen>`
for element in $full_list
do
echo $element
element_list=$element_list"`basename $element .zip` "
echo $element_list
echo ---
done
...
Et eksempel på hvordan et element kunne se ud:
/home/not_home/pakker/ikke helt godt nok.zip
Der er desværre ikke nogen mulighed for at ændre på hverken output fra kommandoen, som opretter listen, eller ændre filnavnet. Det, der giver mig håb er, at hvis man kører kommandoen, som outputter den famøse liste, ser det således ud:
/home/not_home/pakker/a.zip
/home/not_home/pakker/fint_nok.zip
/home/not_home/pakker/ikke helt godt nok.zip
/home/not_home/pakker/slet ikke godt.zip
/home/not_home/pakker/z.zip
Det vil sige, at outputtet som sådan er i orden, men problemet ligger i for..in-sætningen.
Er der en måde at få dataene opdelt korrekt på? Det behøver ikke nødvendigvis at være noget med en for-løkke, men jeg skal kunne tilgå de enkelte elementer ét ad gangen.
Håber I kan hjælpe.
Mvh.
