Nieuws:

We zijn er weer.

Na lange tijd van afwezigheid zijn we er weer  :laugh:
We hebben alle wachtwoorden gereset, je oude wachtwoord werkt niet meer.Je moet via het "wachtwoord vergeten"-linkje je wachtwoord resetten. Je krijgt hiervoor een mailtje op het adres dat je bij ons geregistreerd hebt.

De komende tijd zijn we nog druk bezig om de rest van de site op te bouwen, dus het kan zijn dat sommige onderdelen (tijdelijk) niet werken.

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

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

Offline Nick Lamar

  • Lid
  • Steunpunt: Nee
[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
  • Steunpunt: Nee
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=( * )

Offline Nick Lamar

  • Lid
  • Steunpunt: Nee
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.

Offline Nick Lamar

  • Lid
  • Steunpunt: Nee
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.

Offline Nick Lamar

  • Lid
  • Steunpunt: Nee
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.

Offline erik1984

  • Lid
    • erik1984
  • Steunpunt: Nee
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.