Nieuws:

Ubuntu-NL weer online!

Na een periode van technische problemen en een overbelaste server zijn we eindelijk weer bereikbaar.
Samen met Hobbynet, onze sponsor en hostingpartner, hebben we een oplossing gevonden zodat alles weer soepel draait.

Bedankt voor jullie geduld en begrip. We hopen nu weer verder te gaan waar we gebleven waren.

Het team van Ubuntu-NL

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: [opgelost] Bash: titels onderbrengen in een array  (gelezen 1417 keer)

[opgelost] Bash: titels onderbrengen in een array
« Gepost op: 2013/10/14, 16:48:01 »
L.S.

In bash wil ik na de start van een script de titels van een aantal teksten in een array onderbrengen. Deze teksten staan in de directory Teksten. Ik doe als volgt:

teksten=[]
cd Teksten
ls -1 # dit print alle titels in een enkele kolom

Dan verschijnt keurig het rijtje teksten onder elkaar. Maar hoe krijg ik die titels in de geprinte volgorde in de array teksten[]. Ik heb alles geprobeerd maar kom er niet uit. Ook van de bash-fora ben ik niet veel wijzer geworden. Heeft iemand de oplossing?

Bvd
« Laatst bewerkt op: 2013/10/16, 15:38:09 door Nick Lamar »

Offline Johan van Dijk

  • Administrator
    • johanvandijk
Re: Bash: titels onderbrengen in een array
« Reactie #1 Gepost op: 2013/10/14, 19:02:38 »
Probeer deze opties eens:
http://stackoverflow.com/a/10981499
http://stackoverflow.com/a/15582061

shopt -s nullglob
cd Teksten
teksten=( * )

Re: Bash: titels onderbrengen in een array
« Reactie #2 Gepost op: 2013/10/15, 10:13:18 »
Dank voor de opties. Ga ik vandaag proberen.

Re: Bash: titels onderbrengen in een array
« Reactie #3 Gepost op: 2013/10/16, 15:34:44 »
Gelukt!
teksten=[]
teksten=("Teksten"/*)
teksten=("${teksten
  • ##*/}")

l=${#teksten
  • }

for (( i=0;  i<$l; i++)); do
     printf "\n${teksten[$i]}
done

Dank voor de verwijzing.

Re: Bash: titels onderbrengen in een array
« Reactie #4 Gepost op: 2013/10/16, 15:37:25 »
Hier ging iets fout, dus nogmaals.

Gelukt!
teksten=[]
teksten=("Teksten"/*)
teksten=("${teksten##*/}")
l=${#teksten[@}

for (( i=0;  i<$l; i++)); do
     printf "\n${teksten[$i]}
done

Dank voor de verwijzing.

Re: [opgelost] Bash: titels onderbrengen in een array
« Reactie #5 Gepost op: 2013/10/16, 15:48:56 »
Kleine stijltip voor het forum, plaats code tussen code tags [ code ]codehier[ / code ] (zonder de spaties) dan is het sowieso duidelijker om te lezen.