Toon posts:

[ShellScript] Scope, hoe declare je variable als global?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hai,

Onderstaand een ontzettend loos scriptje, maar het laat zien waar mijn probleem zit. Ik wil tekst aan een variable toevoegen, en later afdrukken. Maar door een andere scope, wordt de variable alleen geupdate IN de loop of IN het if-block.

Ik weet zelf even niet meer hoe ik UIT die scope van de loop / het if-block kom.
Iemand tips?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/sh

FOO="Lijstje:\n"

find . -maxdepth 1 -type f | tail -5 | while read LINE
do
        if [ -e $LINE ]; then
                FOO=`echo "$FOO\n$LINE"`
                echo "In de loop: $FOO"
        fi
done

echo "Uit de loop: $FOO"

Verwijderd

Topicstarter
Even een reply op mijzelf, voor de archives en search is dit misschien handig, ik kan me zo voorstellen dat meer mensen tegen dit shellscripting probleem aan (zullen) lopen.
Verwijderd schreef op 15 mei 2003 @ 11:36:
code:
1
find . -maxdepth 1 -type f | tail -5 | while read LINE
Maak daar van:

code:
1
2
DIRS=$(find . -maxdepth 1 -type f | tail -5)
for LINE in DIRS


en 't werkt.