
Hjälp med Bash
SV: Hjälp med Bash
Tack för det
Det gjorde susen!

Hjälp igen tack
Jag fortsätter här i min egen tråd...
Finns det något sätt att rensa ut en funktion och starta om på nytt? Om jag t.ex. har:
Jag vet att detta (nedan) skulle fungera, men det kommer att ge den sista meningen flera gånger...
Finns det något? Kanske iaf stoppa resten av funktionen med exit eller något?
Finns det något sätt att rensa ut en funktion och starta om på nytt? Om jag t.ex. har:
Kod: Markera allt
function favoritfrukt {
echo "Vilken är din favoritfrukt?"
read frukt;
if [ "${frukt}" = "banan" ]; then
echo "Vi lever inte i ett fritt land. Ändra genast din favoritfrukt!"
RESTART_FUNCTION; # Här skulle jag vilja ha något...
fi
echo "Tack för att du talar om vilken din favoritfrukt är. Och vilken tur att det inte är banan!"
}
Kod: Markera allt
function favoritfrukt {
echo "Vilken är din favoritfrukt?"
read frukt;
if [ "${frukt}" = "banan" ]; then
echo "Vi lever inte i ett fritt land. Ändra genast din favoritfrukt!"
favoritfrukt;
fi
echo "Tack för att du talar om vilken din favoritfrukt är. Och vilken tur att det inte är banan!"
}
SV: Hjälp med Bash
Kod: Markera allt
eftersom du ropar på funktionen "favoritfrukt" varje gång du svarar banan och när du tillslut svarar något annat så kommer den passera raden echo "Tack för att du talar om vilken din favoritfrukt är. Och vilken tur att det inte är banan!" och skriva ut den raden oavsätt om du svarade banan eller inte..
function favoritfrukt {
echo "Vilken är din favoritfrukt?"
read frukt;
if [ "${frukt}" = "banan" ]; then
echo "Vi lever inte i ett fritt land. Ändra genast din favoritfrukt!"
favoritfrukt;
else
echo "Tack för att du talar om vilken din favoritfrukt är. Och vilken tur att det inte är banan!"
fi
}
________________________________________________________________
twitter @ BarreGargamel
blogg @ Gargamel.NU
twitter @ BarreGargamel
blogg @ Gargamel.NU
- nicefinger
- Inlägg: 1800
- Blev medlem: 14 jul 2006, 08:18
- OS: Annat GNU/Linux
- Utgåva: 23.04 Lunar Lobster
- Ort: Uddevalla
SV: Hjälp med Bash
while ... do
Eller?
Eller?
Kolsyrat gangesvatten, socker, målarfärgämne (sockerkulör), surhetsgivande medel (saltsyra), dioxin, konservmedel (E211), du-är-så-sötningsmedel (E952), arom, oxidationsmedel.
SV: Hjälp med Bash
Ett mycket bättre alternativnicefinger skrev: while ... do
Eller?

Jag försökte bara förklara varför det skrevs ut flera gånger ....
________________________________________________________________
twitter @ BarreGargamel
blogg @ Gargamel.NU
twitter @ BarreGargamel
blogg @ Gargamel.NU
SV: Hjälp med Bash
Tack för det
Tänkte inte i de banorna alls, så tack!
Angående while och do... Jag har använt while en hel del i PHP, men jag har aldrig riktigt fått kläm på do. Ska kolla upp det. Allting är ju så annorlunda i bash också

Angående while och do... Jag har använt while en hel del i PHP, men jag har aldrig riktigt fått kläm på do. Ska kolla upp det. Allting är ju så annorlunda i bash också

SV: Hjälp med Bash
Jo... det skulle kunna se ut så här:
när funktionen anropas så sätts $frukt till banan
sen upprepas allt mellan do & done så länge $frukt = banan.
Kod: Markera allt
function favoritfrukt {
frukt="banan"
while [ "${frukt}" = "banan" ]; do
echo "Vilken är din favoritfrukt?"
read frukt;
done
echo "Tack för att du talar om vilken din favoritfrukt är. Och vilken tur att det inte är banan!"
}
sen upprepas allt mellan do & done så länge $frukt = banan.
________________________________________________________________
twitter @ BarreGargamel
blogg @ Gargamel.NU
twitter @ BarreGargamel
blogg @ Gargamel.NU
SV: Hjälp med Bash
Tack, nu försår jag. Det var lättare än vad jag hade förstått det 

- nicefinger
- Inlägg: 1800
- Blev medlem: 14 jul 2006, 08:18
- OS: Annat GNU/Linux
- Utgåva: 23.04 Lunar Lobster
- Ort: Uddevalla
SV: Hjälp med Bash
Eller såhär
Kod: Markera allt
function favoritfrukt {
frukt="banan"
while [ "${frukt}" = "banan" ]; do
echo "Vilken är din favoritfrukt?"
read frukt;
if [ "${frukt}" = "banan" ]; then
echo "Vi lever inte i ett fritt land. Ändra genast din favoritfrukt!"
fi
done
echo "Tack för att du talar om vilken din favoritfrukt är. Och vilken tur att det inte är banan!"
}
Kolsyrat gangesvatten, socker, målarfärgämne (sockerkulör), surhetsgivande medel (saltsyra), dioxin, konservmedel (E211), du-är-så-sötningsmedel (E952), arom, oxidationsmedel.
SV: Hjälp med Bash
ooops... missade det stycketnicefinger skrev: Eller såhär
Kod: Markera allt
..... if [ "${frukt}" = "banan" ]; then echo "Vi lever inte i ett fritt land. Ändra genast din favoritfrukt!" fi .....

________________________________________________________________
twitter @ BarreGargamel
blogg @ Gargamel.NU
twitter @ BarreGargamel
blogg @ Gargamel.NU
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
SV: Hjälp med Bash
Eller om man inte vill testa samma sak på två ställen
och vill slippa att sätta $frukt till banan från början:
och vill slippa att sätta $frukt till banan från början:
Kod: Markera allt
favoritfrukt() {
while
echo 'Vilken är din favoritfrukt?'
read frukt
test banan = "$frukt"
do
echo 'Vi lever inte i ett fritt land. Ändra genast din favoritfrukt!'
done
echo 'Tack för att du talar om vilken din favoritfrukt är. Och vilken tur att det inte är banan!'
}