Ukazno programiranje (težava s primerom)

Imam sledeč problem. za faks moram narediti vajo oz. napisati program (skripto) katere navodilo je tako

Napišite ukazni program (prestej.sh), ki prešteje vse zbirke določenega kazala, ki v imenu vsebujejo podan niz. Program prejme dva argumenta: prvi, ki pove preiskovano kazalo in drugi, s katerim podamo niz, ki ga ime zbirke mora vsebovati. V kolikor programu ne podamo argumenta(-ov), program izpiše navodilo za uporabo.

program sem napisal takole:
#!/bin/bash
if [ -z \"$2\" ]; then
echo Kot argument podamo dve števili
else
find $1 -type f -name $2
fi

ko poženem avtomatski test za preverjanje za vse besede ki jih išče pravilno najde edino ko hoče poiskat datoteke z imenom bash in sh test pade. Primer:

Zaganjam ./prestej.sh /home/vajeacc bash
./prestej.sh /home/vajeacc bash

find: /home/vajeacc/.ssh: Permission denied
find: /home/vajeacc/.openoffice.org2: Permission denied
find: /home/vajeacc/.gnupg: Permission denied
Napaka v skripti

ko pa išče naprimer katero drugo besedo pa najde vse vredu (kot sem že omenil)

Če kdo ve kje bi lahko bila napaka bi prosil za nasvet.
lp

Komentarji

  • zaženi skripto kot root
  • SInDrOoM Član
    uredil/-a 1. April, 2008
    ja to ne pride v poštev ker se test izvaja s strani fakultete prek interneta in tako jo test poganja sam.
    Zgleda da imam problem tudi v ukazu za iskanje datoteke. kot sem zastopil mora program poiskati vse datoteke ki vsebujejo podano besedo in ne datoteke ki se natanko imenujejo kot podana beseda. torej verjetno ta ukaz ne pride v poštev find $1 -type f -name $2
    ali se motim?
  • Cube Član Ubuntu.si
    #!/bin/bash
    if [ -z \"$2\" ]; then
    echo ./test.sh [pot] [izraz]
    else
    find $1 -iname *$2*
    fi

    probaj s tem..

    lp,cube
Za komentiranje se prijavite ali pa se vpišite.