[rešeno] [bash] Pomoč pri deljenju dveh števil z odštevanjem

Pozdravljeni!
Imam problem pri naslednji kodi:

#!/bin/bash
stevec=0
read st1 st2
while [ $st1 -ge $st2 ]; do
let st1=st1-st2
let stevec=$stevec+1
done
echo $stevec
if [ -z "st1" ] && [ -z "st2" ]; then
echo Napaka, vstavi dve stevili!
fi

Ko vstavim 2 števili se mi zdelita, ko pa ne vstavim nič (mora biti pogoj če programu ne podamo argumenta mora izpisat navodilo za uporabo) pa mi javi napako: line 4: [: 0: unary operator expected
Mislim da je napaka v tem, ker v if stavku primerjam stringe in ne integer, ampak ker sem nov v tem ne vidim rešitve.
lp

Komentarji

  • Zamenjaj vrstni red:

    #!/bin/bash
    stevec=0
    read st1 st2
    if [ -z "st1" ] && [ -z "st2" ]; then
    echo Napaka, vstavi dve stevili!
    #tu naj bo nek stavek, ki spet prebere stevili oz. gre na začetek
    fi

    while [ $st1 -ge $st2 ]; do
    let st1=st1-st2
    let stevec=$stevec+1
    done
    echo $stevec
  • Hvala za odgovor! Čeprav napišem ponoven stavek za vpis, mi še vedno izpisuje to napako v primeru ko ne vpišem nič. :(
  • Kami Član Ubuntu.si
    Do spremenljivke dostopaš s pomočjo $ - torej if [ -z "$st1"]; then ...

    Drugače pa število argumentov dobiš v $#.


    arg_count=$#
    if [ \"${arg_count}\" = 0]; then
    echo \"Ni dovolj argumentov...\"
    fi
  • Hvala!:)
Za komentiranje se prijavite ali pa se vpišite.