Következő Előző Tartalom

11. Táblázatok

11.1 Sztring összehasonlító operátorok

(1) s1 = s2

(2) s1 != s2

(3) s1 < s2

(4) s1 > s2

(5) -n s1

(6) -z s1

(1) s1 megegyezik s2-vel

(2) s1 nem egyezik meg s2-vel

(3) __TO-DO__

(4) __TO-DO__

(5) s1 nem nulla (egy vagy több karakterből áll)

(6) s1 nulla

11.2 Példák sztingek összehasonlítására

Két sztring összehasonlítása.

        #!/bin/bash
        S1='string'
        S2='String'
        if [ $S1=$S2 ];
        then
                echo "S1('$S1') nem egyenlő S2('$S2')-vel"
        fi
        if [ $S1=$S1 ];
        then
                echo "S1('$S1') egyenlő S1('$S1')-vel"
        fi
        

Most idézek egy részt Andreas Beck leveléből, az if [ $1 = $2 ] alakú utasításokkal kapcsolatban.

Nem túl jó ötlet a fenti példában is látható módszert használni, mert ha a $S1 vagy a $S2 üres, értelmezési hibát kapunk. Helyette használjuk inkább az x$1=x$2 vagy a "$1"="$2" formát.

11.3 Aritmetikai operátorok

+

-

*

/

% (maradék)

11.4 Aritmetikai relációs operátorok

-lt (<)

-gt (>)

-le (<=)

-ge (>=)

-eq (==)

-ne (!=)

A C programozók egyszerűen össze tudják vetni ezen operátorokat a zárójelek közt megadottakkal.

11.5 Hasznos parancsok

Ezt a részt Kees újraírta (nézd meg a köszönetnyilvánítást...).

Néhány ezek közül a programok közül egy komplett programozási nyelvet takar. Ezen parancsok esetén csak az alapokat ismertetjük. Ha részletes leírásra is szükséged van nézd meg a parancsok kézikönyv oldalait (man pages).

sed (folyam szerkesztő)

A sed egy nem interaktív szerkesztőprogram. Ez azt jelenti, hogy a fájlok módosítása nem úgy megy, hogy mozgatod a kurzort a képernyőn. Itt szerkesztő utasításokból álló szkripteket használunk és egy fájlnevet, amit szerkeszteni akarunk. A sed tulajdonképpen egy szűrőnek is felfogható. Nézzük az alábbi példákat:

        $sed 's/mit_cseréljek/mire_cseréljem/g' /tmp/dummy
        

A sed kicseréli a "mit_cseréljek" szöveget a "mire_cseréljem" szöveggel, és a bemenetét a /tmp/dummy fájlból veszi. A végeredmény az stdout-ra lesz küldve (ami alapesetben a konzol), de ha a sor végéhez írod, hogy "> fájlnév", akkor a sed kimenetét a "fájlnév" nevű fájlba küldi.

        $sed 12, 18d /tmp/dummy
        

A sed, a 12. és 18. sorok közti rész kivételével kiírja a fájl tartalmát. Az eredeti fájl nem változik.

awk (fájlok módosítása, szöveg kinyerése és szerkesztése)

Az AWK-nak számos implementációja létezik (a legismertebbek a GNU-s gawk és az ún. "új awk", a mawk). Az alapelv egyszerű: az AWK mintát keres és minden illeszkedő mintára végrehajt valamilyen műveletet.

Megint létrehoztam egy dummy nevű fájlt, ami a következő sorokból áll:

"test123

test

tteesstt"

        $awk '/test/ {print}' /tmp/dummy
        

test123

test

A minta, amit az AWK keres, a "test". Ha a /tmp/dummy fájlban talált egy sort, amiben szerepelt a "test" szó, akkor végrehajtotta rá a "print" műveletet.

        $awk '/test/ {i=i+1} END {print i}' /tmp/dummy
        

3

Ha sokféle mintára keresel, cseréld ki az idézőjelek közti szöveget "-f file.awk"-ra és a mintákat, végrehajtandó tevékenységeket írd a "file.awk" nevű fájlba.

grep (a keresési mintára illeszkedő sorok kiírása)

Az előző fejezetekben már jó néhány grep parancsot láttunk, amelyek az illeszkedő sorokat írták ki. De a grep többre is képes.

        $grep "ezt keressük" /var/log/messages -c
        

12

Az "ezt keressük" szöveg 12-szer szerepelt a /var/log/messages nevű fájlban.

[Jó, ez csak egy kitalált példa, a /var/log/messages meg lett buherálva. :-)]

wc (sorok, szavak, bájtok megszámolása)

A következő példában mást kapunk, mint amit várunk. A dummy nevű fájl, amit most használunk, a következő szöveget tartalmazza: "bash bevezetés HOWTO teszt fájl"

        $wc --words --lines --bytes /tmp/dummy
        

2 5 34 /tmp/dummy

A wc nem foglalkozik a paraméterek sorrendjével. Mindig egy előre megadott sorrendben írja ki őket, amint azt te is láthatod: (sorok)(szavak)(bájtok)(fájlnév).

sort (szöveges fájl sorainak rendezése)

Most a dummy fájl a következőket tartalmazza:

"b

c

a"

        $sort /tmp/dummy
        

A kimenet kábé így néz ki:

a

b

c

A parancsok nem lehetnek ilyen egyszerűek :-)

bc (egy számológépes programozási nyelv)

A bc a parancssorból kapja meg a számítási feladatokat (fájlból, nem pedig átirányítás vagy cső útján), esetleg egy felhasználói felületről. A következőkben példákon keresztül bemutatunk néhány parancsot.

A bc-t a -q paraméterrel indítom, hogy ne írja ki az üdvözlő szöveget.

   $bc -q
        

1 == 5

0

0.05 == 0.05

1

5 != 5

0

2 ^ 8

256

sqrt(9)

3

while (i != 9) {

i = i + 1;

print i

}

123456789

quit

tput (terminál inicializálására vagy a terminfo adatbázis lekérdezésére)

Egy kis példa a tput képességeinek demonstrálására:

        $tput cup 10 4
        

A kurzor a (y10,x4)-es pozícióban jelenik meg.

        $tput reset
        

Törli a képernyőt, és a kurzor az (y1,x1) pozícióba kerül. Az (y0,x0) a bal felső sarok koordinátája.

        $tput cols
        
80

Az x tengely irányában maximálisan elhelyezhető karakterek száma.

Nagyon ajánlott, hogy legalább ezen programok használatával tisztában legyél. Millió olyan kis program van, amikkel csodákra lehetsz képes a parancssorban.

[Néhány példa kézikönyv oldalból vagy GYIK-ből származik.]


Következő Előző Tartalom