sunnuntai 21. syyskuuta 2008

bash if

if lauseen toteutus bash komentotulkissa:

Yksinkertainen
if [ ehto ]
then
komennot
fi

Esimerkki, onko hakemistossa jpg kuvia.:
imagename=`ls *jpg|head -1`
if [ $imagename = "" ]
then
echo "No jpg images"
fi

Laaja rakenne:
if [ ehto ]
then
lauseet
elif [ 2. ehto ]
then
lauseet
else
lauseet
fi

Esimerkki 2.
imagename=`ls *jpg|head -1`
if [ $imagename = "" ]
then
echo "No jpg images"
else
echo "At least one image found: $imagename"
fi

Vertailuoperaattorit:
-n Pituus ei ole 0
-z Pituus on 0
-d Hakemisto on olemassa
-f Tavallinen tiedosto on olemassa
-r Onko tiedostoon lukuoikeus
-w Onko tiedostoon kirjoitusoikeus
-x Onko tiedostoon ajo-oikeus
-eq Kokonaisluvut ovat yhtäsuuret (a = b)
-ne Kokonaisluvut eivät ole yhtä suuret (a != b)
= Merkkijonot ovat samat (myös ==)
!= Merkkijonot eivät ole samat
-lt Kokonaisluku on pienempi kuin toinen
-gt Kokonaisluku on suurempi kuin toinen (a > b)
-le Kokonaisluku on pienempi tai yhtäsuuri kuin toinen (a <= b)
-ge Kokonaisluku on suurempi tai yhtäsuuri kuin toinen (a >= b)

sunnuntai 14. syyskuuta 2008

Bash merkkijonon käsittelyä

Bash ja strings



Bash kieli tarjoaa ihan kivan joukon merkkijono käsittely komentoja. Ne ovat vähän kryptisen näköisiä, mutta helppoja kun ne osaa.

Merkkijonokomennot ovat muotoa ${} ja varsinainen komento on sulkujen sisällä.

Kannattaa huomata, että muuttujanimi lausekkeessa (R-lauseessa eli oikealla puolella) esiintyy ilman $ merkkiä. Käytetyt sulut ovat {}, curly bracket tai enkelisulut.
Tässä muutamia esimerkin muodossa:

alimerkkijonon poistaminen
imagename=${fullfile%.jpg} --> Poistaa".jpg" esiintymän, jos fullfile merkkijonossa on sellainen.

merkkijonon pituus
len=${#imagename} --> asettaa len muuttujaan imagename merkkijono pituuden.

Toinen vaihtoehto on: expr length $string

Merkkijono korvaaminen ${string/substring/replacement}

mjono2=${mjono/_/- } --> Korvaa merkkijono ensimmäisen alaviivan väliviivalla. mjono2=${mjono//_/- } --> Korvaa merkkijono kaikki alaviivat väliviivoilla.

Alimerkkijono paikka merkkijonossa

pos=`expr index "$s" ' '` --> Missä kohdassa on ensimmäinen välilyönti.

maanantai 1. syyskuuta 2008

Linux kirjoja

Tässä muutamia hyviä linux kirjoja:

Fedora & Red Hat Enterprise Linux : tehokas hallinta, isbn 9789525592061

Linux asentajan opas, isbn 9789525592078

Linux tehokäytössä, isbn 9789525655964

Linkit vievät kirjojen kuvaukseen ja tarjoussivulle (readme.fi).