Vraag & Antwoord

OS Linux

oefening shell-script

Anoniem
rackiman
26 antwoorden
  • Volgens mij heb ik in de tweede verbeterde regel een spatie gevoegd tussen de - (minus) en de 1 (één) ….
  • Moet normaal zonder spatie zijn dacht ik, zo heb ik het ook uitgevoerd.
    Het zal em waarschijnlijk wel ergens in een spatie of quotes zitten dacht ik, eens zal ik het vinden. :D
  • Raar..maar waar
    De code draait op een andere machine met redhat 8, en niet op mijn laptop met Madrake 9.1
    De fout zal hem ergens in een syntax van Mandrake zitten.
    Maar nu eerst de cursus SQL server blokken en dan volgende week weer terug verdiepen in Linux…..dan vind ik misschien de reden waarom het op mijn Mandrake niet wil lukken.
  • In een oud Linux Magazine (nr 4, jaargang 3) kwam ik het volgende stukje script tegen:

    [code:1:68267923e2]
    <knip>
    let count=1
    while [ $count -le 25 ]; do
    cat $file1 $file1 > $file2
    mv $file2 $file1
    let count=count+1
    done
    <knip>
    [/code:1:68267923e2]

    In het commentaar bij het artikel stond vermeld dat BASH standaard de waarde van count als een string ziet, en niet als een getal. Door er [b:68267923e2]let[/b:68267923e2] voor te zetten, snapt BASH dat het dus een getal is, waar gerekend mee kan/moet worden.
  • Je kunt ook (ten minste) je variabelen goed declareren voor gebruik.

    bijvoorbeeld

    typeset -i INTA=45
    typeset -i INTB
    INTB=$INTA+$INTA
    echo $INTB

    Geeft "90" terug.

    Zie ook: http://www.tldp.org/LDP/abs/html/declareref.html
  • teller=5
    while test ! $teller -eq 1
    do echo -n "$teller "
    sleep 1
    teller=`expr $teller - 1`
    done
    echo take off

    Nu werkt het wel….ik had geen spatie staan tussen - en 1 :oops: :oops: :oops:
    Zo een klein scriptje en uren werk meegehad…dat beloofd voor het examen van zaterdag :roll:

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.