Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: slc0295 - 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;
-
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.
-
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
-
;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
-
Jessu, pystyykö tuota lukemaan :o
if [ $lopetus = p ] || [ $lopetus = P]
näin
if [ $lopetus = p ] || [ $lopetus = P ]
välilyönnillä on väliä
Olisiko esim. tällainen hieman selkeämpi ;)
(http://www.aijaa.com/img/t/00479/2780027.t.png) (http://www.aijaa.com/v.php?i=2780027.png)