# array skript bash



## onebugarmy (27. Januar 2008)

Hallo,

ich habe hier folgendes Skript. Es gibt mir meine Ordner in einem Ordner aus und die ausführbaren Dateien. Ein String lautet:
verz[${#verz}]=$i
D.h. wenn ich das richtig verstehe ein Array in einem Array?!... ich ahbe da jetzt ein bisschen rumprobiert und steige nicht durch warum das so gelöst wurde.
Kann mir jemand obrigen befehl erklären.

Thnx




#!/bin/sh
verz=()
file=()

for i in *
do
        if [ -d $i ]
        then
                verz[${#verz}]=$i
        elif [ -f $i -a -x $i ]
        then
                file[${#file}]=$i
        fi
done
echo "Alle Verzeichnisse sind:"
count=1
for i in ${verz}
do
        echo $count - $i
        count=`expr $count + 1`
done

echo "Nur Dateien mit Ausfuehrungsrechten:"
count2=1
for i in ${file}
do
        echo $count2 - $i
        count2=`expr $count2 + 1`
done
exit 0


----------



## deepthroat (27. Januar 2008)

onebugarmy hat gesagt.:


> Hallo,
> 
> ich habe hier folgendes Skript. Es gibt mir meine Ordner in einem Ordner aus und die ausführbaren Dateien. Ein String lautet:
> verz[${#verz}]=$i
> D.h. wenn ich das richtig verstehe ein Array in einem Array?!


Nein. ${#verz} gibt die Anzahl der Elemente des Array wieder. Da Arrays in Bash mit dem Index 0 beginnen, fügt diese Zuweisung ein Element ans Ende des Arrays an. Bsp:

```
$ a=( 1 2 3 )  # Array initialisieren
$ echo ${a[*]}  # Array ausgeben
1 2 3
$ echo ${#a[*]}  # Anzahl der Elemente ausgeben
3
$ a[${#a[*]}]=4  # entspricht: a[3]=4
$ echo ${a[*]}  # Array ausgeben
1 2 3 4
```

Gruß

PS: Bitte verwende für Code die entsprechenden Tags!


----------



## onebugarmy (27. Januar 2008)

Vielen Dank für Deine Hilfe.
Was meinst du mit Tags? Werde ich für die Zukunft einbauen. Danke nochmals


----------



## deepthroat (28. Januar 2008)

onebugarmy hat gesagt.:


> Vielen Dank für Deine Hilfe.
> Was meinst du mit Tags? Werde ich für die Zukunft einbauen. Danke nochmals


Siehe z.B. http://www.tutorials.de/forum/vb-testforum/241406-test-aller-code-tags-die-mir-so-einfallen.html

Für Bash Code: [bash]$ echo "hello"[/bash] wird zu 
	
	
	



```
$ echo "hello"
```
Gruß


----------

