Tein kokeeksi erään skriptin, olen ihan nyyppä noissa bash-skripteissä. Mutta en saanut sitä ihan pelittämään sillä tavalla kuin haluaisin.
Eli se herjaa mm. unexpected end of file vaikka tuo skripti ei edes lue tai kirjoita mihinkään tiedostoon.
Sitten se toinen juttu elikkä:
--
echo "Anna 1 kirjain"
read TUNNUS
if $TUNNUS="C"
then $TEKSTI="Päivää!"
else
if $TUNNUS="D"
then $TEKSTI="Näkemiin"
fi
echo $TEKSTI
--
niin tuo ei näytäkään tuota $TEKSTIä
mut jos teen tällaisen skriptin
echo "Anna kirjain"
read TUNNUS
echo $TUNNUS
niin tuo sen sijaan toimii.
Eli miten ensinnäkin saan tuon unexpected... jne pois ja sitten miten saan tehtyä tuon if/then/else jutun niin että se toimisi?
Eli se herjaa mm. unexpected end of file vaikka tuo skripti ei edes lue tai kirjoita mihinkään tiedostoon.
Sitten se toinen juttu elikkä:
--
echo "Anna 1 kirjain"
read TUNNUS
if $TUNNUS="C"
then $TEKSTI="Päivää!"
else
if $TUNNUS="D"
then $TEKSTI="Näkemiin"
fi
echo $TEKSTI
--
niin tuo ei näytäkään tuota $TEKSTIä
mut jos teen tällaisen skriptin
echo "Anna kirjain"
read TUNNUS
echo $TUNNUS
niin tuo sen sijaan toimii.
Eli miten ensinnäkin saan tuon unexpected... jne pois ja sitten miten saan tehtyä tuon if/then/else jutun niin että se toimisi?
Vastaukset 2
Vanhimmat
IF-lauseen ehto pitää olla [hakasulkeissa]
echo "Anna 1 kirjain"
read TUNNUS
if [ $TUNNUS = "C" ]
then TEKSTI=Päivää!
elif [ $TUNNUS = "D" ]
then TEKSTI=Näkemiin
fi
echo $TEKSTI
-----------------------------
TAI
-----------------------------
echo "Anna 1 kirjain"
read TUNNUS
if (test $TUNNUS = "C" )
then TEKSTI=Päivää!
elif (test $TUNNUS = "D" )
then TEKSTI=Näkemiin!
fi
echo $TEKSTI
------------------------------
Eli nuo hakasulkeet vastaavat "test" komentoa (kts. man test) tai hakasulku on oikeastaan linkki test-komentoon joten ehto " Onko muuttujan 'Tunnus' arvo 'C' " voidaan tutkia joko hakasulkeiden sisällä tai kaarisulkeissa käyttämällä "test" komentoa, vastaavat samaa asiaa.
Toinen virhe oli tuloksen sijoittaminen muuttujaan TEKSTI eli ei dollaria
$TEKSTI=jotain
vaan
TEKSTI=jotain
ja muuttujan TEKSTI arvo tulostetaan dollarilla
echo $TEKSTI