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: een file als argument aan bash doorgeven  (gelezen 1039 keer)

Offline gercokees

  • Lid
  • Steunpunt: Nee
een file als argument aan bash doorgeven
« Gepost op: 2008/11/19, 16:00:20 »
Haai,
Ik heb een file met een groot aantal nummers...
Die nummers wil ik aan een bash-scriptje doorgeven die ze dan 1 voor 1 naloopt....
ik dacht dat als volgt te doen:
script.sh < filemetnummers.txt
waarom werkt dit niet?

script.sh:
#! /bin/sh
for var in "$@"
do
    echo "$var"
done
Groet,
Gerco-Kees
<><

Offline profoX

  • Lid
    • wesley
    • Lionslink
  • Steunpunt: Nee
Re: een file als argument aan bash doorgeven
« Reactie #1 Gepost op: 2008/11/19, 16:53:54 »
try:
cat filemetnummers.txt | script.sh
edit: hoewel, als jouw methode niet werkt zal dit ook wel niet werken en is er iets anders mis..
« Laatst bewerkt op: 2008/11/19, 17:03:21 door profoX »
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Offline vanadium

  • Lid
  • Steunpunt: Nee
Re: een file als argument aan bash doorgeven
« Reactie #2 Gepost op: 2008/11/19, 18:41:53 »
Argumenten op de commandolijn zijn niet hetzelfde als standaard input. Nu ben ik niet ervaren in bash scripting om te weten hoe je standaard input kan inlezen en verwerken. Een trukje om het toch te klaren is

script $(cat file.txt)

zal werken voor jou, maar spaties in lijnen zullen als afzonderlijke argumenten aangeboden worden.

Offline jimi

  • Lid
  • Steunpunt: Nee
Re: een file als argument aan bash doorgeven
« Reactie #3 Gepost op: 2008/11/19, 18:55:36 »
Staan de nummers in je file elk op een nieuwe regel?
Regel-voor-regel lezen van standard input kan als volgt in bash:
#!/bin/bash

while read nummer
do
        # $nummer bevat nu een regel
        echo $nummer
done

Offline gercokees

  • Lid
  • Steunpunt: Nee
Re: een file als argument aan bash doorgeven
« Reactie #4 Gepost op: 2008/11/20, 13:45:49 »
Thanx gentleman...
Het voorbeeld van Jimmi gepakt, dat werkt voor mij het best, maar de laatste regel moet dan zijn:

#!/bin/bash

while read nummer
do
        # $nummer bevat nu een regel
        echo $nummer
done < inputfile

groetjes,
Groet,
Gerco-Kees
<><