Kirjoittaja Aihe: Löytyykö apuja aloittelijalle  (Luettu 2809 kertaa)

slc0295

  • Käyttäjä
  • Viestejä: 5
    • Profiili
Löytyykö apuja aloittelijalle
« : 21.09.08 - klo:16.49 »
Olen yrittänyt tehdä koodia, while looppia, en ymmärrä virhettäni. Virheilmoituksessa ilmoitetaan virheestä rivillä 34
ja koodia olen yrittänyt rustata 33 riviä. En taida osata lopettaa alkamaani if-lauseketta, mutten keksi enää muuta kuin, että olisiko joku taitavampi ystävällinen ja neuvois? Olen yrittänyt kovin, mutten enää osaa.
Koodi:
#!/bin/bash
#valitsee ohjelman komentotulkin
echo "Tervetuloa kayttamaan tiedostonhakua"
echo ""
echo "Valitse jokin seuraavista vaihtoehdoista"
echo "T anna tiedoston nimi"
echo "l tulostaa tiedostolistauksen"
echo "o hakee tiedostoa omistajan perusteella"
echo "p poistu ohjelmasta"
read vastaus
   if [ $vastaus = L ] || [ $vastaus = l ]
   then
      ls;
    elif [ $vastaus = T ]  || [ $vastaus = t ]
     then
      echo "anna tiedoston nimi"
      read nimi
      find $nimi;
       pwd $nimi;
      elif
       while [ $vastaus = o ] || [ $vastaus = O ]
         do
          echo "anna tiedoston omistaja"
         # $2 export PS1="\e[0;31m[\u@\h \W]\$ \e[m "#taman tarkoituksena on vaihtaa fontti punaiseksi
          #sleep 4 #tama tekee viivetta, hammennysta
           echo "voit lopettaa haun painamalla p"
         done;
          read vastaus
           if [ $vastaus = p ] || [ $vastaus = P ]   
            then
       break
           fi;

janne

  • Käyttäjä
  • Viestejä: 5150
    • Profiili
Vs: Löytyykö apuja aloittelijalle
« Vastaus #1 : 22.09.08 - klo:02.00 »
       pwd $nimi;

äkkiseltään minä luulen, että tämä rivi ei tee sitä mitä sen oletetaan tekevän.

varsinaienn vire on ainakin siinä, että ainoastaan toinen ohjelmasta löytyvistä if-lohkoista on suljettu fi-komennolla. näinollen ensimmäinen if jää auki ja siitä virheillään scriptin lopun tuntumassa.
Janne

slc0295

  • Käyttäjä
  • Viestejä: 5
    • Profiili
Vs: Löytyykö apuja aloittelijalle
« Vastaus #2 : 22.09.08 - klo:10.40 »
       pwd $nimi;


       pwd $nimi;

äkkiseltään minä luulen, että tämä rivi ei tee sitä mitä sen oletetaan tekevän.

varsinaienn vire on ainakin siinä, että ainoastaan toinen ohjelmasta löytyvistä if-lohkoista on suljettu fi-komennolla. näinollen ensimmäinen if jää auki ja siitä virheillään scriptin lopun tuntumassa.
.

Kiitos paljon Jannelle :)

Tutkin tuota pwd komentoa ja olet oikeassa locate komento antaa sen tuloksen mihin pyrin.

Kiitos paljon sinulle vaivannäöstäsi, yritän jatkaa pään puskemista kivenkoloon,  yritin muuten sijoittaa sen fi lausekkeen tuplasti sinne koodin loppuun, muttei siitä juuri iloa ollut.

Kerran sain sevverta homman toimiin, että sain komean loopin, skripti tulosti näytölle vain "anna tiedoston nimi" ja "anna tiedoston omistaja" luuppina.

Kiitos muuten kaikille keskustelupalstalle osallistujille, olen löytänyt täältä paljon itselleni hyödyllisiä neuvoja. Olen asentanut mm Virtual Boxin ja yritän ruuvata MS WinServer 2003 siinä. Vielä ei kaikki lähde käyntiin, ilmoittaa boxista kernel- erroria, kyllähän etsivä senkin löytää.

Terkuin

Sakke

slc0295

  • Käyttäjä
  • Viestejä: 5
    • Profiili
Vs: Löytyykö apuja aloittelijalle
« Vastaus #3 : 22.09.08 - klo:17.51 »
 ;D ;D Nyt sain koodin toimimaan, ongelmana taisi olla ne pääääääättttymätttömät if-lausekkeet. Korjailin koodiani:
if [ $vastaus = L ] || [ $vastaus = l ]
   then
      ls;
    elif [ $vastaus = T ]  || [ $vastaus = t ]
       then
       echo "anna tiedoston nimi"
       read nimi
       locate $nimi
      else
       while true [ $vastaus = o ] || [ $vastaus = O ]
        do
         echo "anna tiedoston omistaja"
           # $2 export PS1="\e[0;31m[\u@\h \W]\$ \e[m "#taman tarkoituksena on vaihtaa fontti punaiseksi
           sleep 8 #tama tekee viivetta, hammennysta
           #echo "voit lopettaa haun painamalla p"
         # break
           read vastus
           if [ $vastus != p ] || [ $vastus != P ]   
           then
      echo $vastus
      echo "olet etsinyt väärällä parametrillä, valitse p"
      read lopetus
       if [ $lopetus = p ] || [ $lopetus = P]
        then
         sleep 4         
         echo "valitettavasti sillä nimellä ei ole tiedostoja"
           break   
        fi
      fi      
         done;
            fi

Tällä koodilla haku tulostaa haettavan tiedoston sijainnin. Muu on sitten hömppäää ;D

UbunTux

  • Käyttäjä
  • Viestejä: 2046
  • KubunTux
    • Profiili
Vs: Löytyykö apuja aloittelijalle
« Vastaus #4 : 22.09.08 - klo:18.54 »
Jessu, pystyykö tuota lukemaan  :o
     
Koodia: [Valitse]
if [ $lopetus = p ] || [ $lopetus = P]
näin
     
Koodia: [Valitse]
if [ $lopetus = p ] || [ $lopetus = P ]välilyönnillä on väliä
Olisiko esim. tällainen hieman selkeämpi  ;)
« Viimeksi muokattu: 22.09.08 - klo:19.21 kirjoittanut UbunTux »
KDE neon
Uudempaa KDE:tä Ubuntulla