Toon posts:

[bash] array elementen als var gebruiken voor ander script

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil iets heel eenvoudigs, maar het lukt niet helemaal, omdat ik de syntax niet goed ken.
Ik heb een array met deze gegevens:
$CONNOK[0]=eth0
$CONNOK[1]=eth1
$CONNOK[2]=eth2
dynamisch opgebouwd. Kan in aantal verschillen, dus ik moet het met een for loopje uitlezen oid.

Nu kan ik heel simpel een echo doen:
echo "$(CONNOK[0])"
dit werkt, maar ik wil iets anders. Ik wil namelijk de waarden uit de elementen vd array weer als variabele gebruiken voor een ander script. Dus zo:
/path/naar/script/buildroutingtable.sh "eth0 eth1 eth2"

Zo kan ik in dat script mijn routing tabel opnieuw opbouwen adh van werkende internetconnecties. En uiteraard de firewall opnieuw initializeren.

Ik hoop dat de bedoeling duidelijk is. Wat dus niet werkt is:
/path/naar/script/buildroutingtable.sh "$(CONNOK[0])"
Dat geeft niet het goede resultaat, nl. eth0[0], heel vreemd, maar ok. Misschien is het voor jullie logisch. thnx.

  • _JGC_
  • Registratie: Juli 2000
  • Laatst online: 07:34
Je kunt gewoon met een for-loopje door ${var[@]} heen AFAIK.

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 14-02 12:23

Kees

Serveradmin / BOFH / DoC
probeer het script te includen?
dus alla
code:
1
. /path/to/script
en dan in het script een check of je argumenten hebt meegegeven en indien niet dat hij met een forloopje de $CONNOK uitleest

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Verwijderd

Topicstarter
Okee, bedankt.
Ik heb het anders opgelost aangezien ik veel te moeilijk zat te denken :9
Al die eth? die dynamisch worden opgebouwd plakte ik in een array, maar als ik dat nu gewoon in een string doe is dat veel eenvoudiger in gebruik :)
Gewoon CONNOK="$CONNOK $line"
en dan met een if statement ervoor zorgen dat die spatie niet aan het begin terechtkomt :)
Het is al gelukt en werkt naar behoren. Bedankt voor het meedenken.