Következő Előző Tartalom

10. Egyebek

10.1 Adatok bekérése felhasználótól: read

Sok esetben szükség lehet arra, hogy adatokat kérjünk be a felhasználótól. Erre számos lehetőségünk van, melyek közül egy a következő:

                #!/bin/bash
                echo Kérlek add meg a neved
                read NAME
                echo "Hi $NAME!"
        

A read segítségével egyszerre több adatot is be tudsz olvasni. A következő példa ezt tisztázza.

                #!/bin/bash
                echo Kérlek add meg a vezeték- és keresztneved
                read FN LN
                echo "Hi! $LN, $FN !"
        

10.2 Aritmetikai kifejezések kiértékelése

A parancssorba (vagy a shell-be) írd be a következőt:

echo 1 + 1

Ha "2"-t vártál eredményül bizonyára csalódott vagy. De mi van akkor, ha azt szeretnéd, hogy a bash ki is értékelje a számokat? A megoldás a következő:

echo $((1+1))

Ez már sokkal logikusabb kimenetet ad. Így kell egy aritmetikai kifejezést kiértékelni. Ugyanezt az eredményt kapod a következővel:

echo $[1+1]

Ha törtekre vagy más matematikai jellegű dolgokra van szükséged, vagy egyszerűen csak ezt szeretnéd használni, akkor bc-vel is kiértékelheted az aritmetikai kifejezéseket.

Ha beírom a parancssorba, hogy "echo $[3/4]", akkor 0-t kapok, mivel a bash csak egészekkel dolgozik. Az "echo 3/4|bc -l" parancsra viszont már helyes eredményt ad, azaz 0.75-öt.

10.3 A bash felkutatása

Mike levele nyomán (nézd meg a köszönetnyilvánítást):

Eddig mindig a "#!/bin/bash" formát használtuk, most itt van pár példa arra, hogyan tudhatod meg a bash konkrét elérési útját.

A "locate bash" az egyik legjobb módszer erre a feladatra, de nem minden rendszeren van locate.

A gyökérből kiadott "find ./ -name bash" legtöbbször működik.

A lehetséges helyek, ahol nézelődhetsz:

ls -l /bin/bash

ls -l /sbin/bash

ls -l /usr/local/bin/bash

ls -l /usr/bin/bash

ls -l /usr/sbin/bash

ls -l /usr/local/sbin/bash

(Most kapásból nem jut több eszembe... A legtöbb rendszeren

ezen könyvtárak valamelyikében lesz).

Vagy megpróbálhatod a "which bash" parancsot is.

10.4 Program visszatérési értékének kiderítése

Bash-ban a programok visszatérési értéke egy speciális változóban tárolódik, melynek neve $?.

A következő példa bemutatja, hogyan deríthetjük ki egy program visszatérési értékét. Feltételezem, hogy a dada nevű könyvtár nem létezik. (Ez szintén Mike javaslatára került ide.)

        #!/bin/bash
        cd /dada &> /dev/null
        echo rv: $?
        cd $(pwd) &> /dev/null
        echo rv: $?
        

10.5 Parancs kimenetének tárolása

A következő szkript listázza az összes táblát az összes adatbázisból (felteszem, hogy MySQL-t használsz). Megváltoztathatod a "mysql" parancsot úgy, hogy valódi felhasználónevet és jelszót használsz.

        #!/bin/bash
        DBS=`mysql -uroot  -e"show databases"`
        for b in $DBS ;
        do
                mysql -uroot -e"show tables from $b"
        done
        

10.6 Több forrásfájl használata

A "source" parancs segítségével több fájlt is használhatsz egyszerre.

__TO-DO__


Következő Előző Tartalom