Kaj je lupina UNIX
Gradniki jezika lupine
Primeri stavkov Bourne
Sestavljeni stavki Korn
ukazi true, false in test
Primeri stavkov Korn
Primer uporabe Korn


Kaj je lupina UNIX

Ukazni jezik
Interpreter ukazov
Male in velike črke razlikuje
Ukazne datoteke (scripts)
Več vrst lupin: Bourne shell, c-shell, Korn shell


Gradniki jezika lupine

meta-znaki
; & ( ) | < > [ ] * ? ! - 

RETURN presledek TAB
komentar #

enostavni ukazi (simple commands)

cevovod ukazov (pipeline)

seznam ukazov (list)

sestavljeni ukazi (compound commands)


Primeri stavkov lupine Bourne

# Bourne shell demo examples
clear    # clear screen
##################################
# User definable variables
USERS="Number of users: \c"
echo $USERS
who|wc -l
##################################
# Positional parameters
ls -l $1
##################################
# Predefined parameters
echo The number of arguments is $#
date &
echo The proces id of the date command was $!
wait
echo The process id of this shell is $$
grep root /etc/passwd
echo The return code from grep was $?
###################################
# Command substitution
echo Number of users: `who|wc -l`
TERMINAL=`cat /etc/ttytype |grep ansi|wc -l`
echo Number of ansi terminals: $TERMINAL
####################################
# Parameter substitution
DIR=${1-$HOME} 
ls $DIR  # list defined or home directory
exit 0

Sestavljeni stavki Korn


Pregled sestavljenih stavkov

for  identifier  in word ; do list1 ; done

select identifier  in word ; do  list ; done

case  word in ( pattern |pattern ...) list ;; ... esac

if list1 ; then list2 elif; then list3 ; else list4 ; fi

while  list1 ; do list2 ; done

until  list2; do list 1 ; done

Opis stavka if

Če je zadnji ukaz v zaporedju ukazov list1 true, sledi izvedba zaporedja ukazov list2...

Ukazi v list1 so poljubni. Imamo pa nekatere "posebne ukaze" (oziroma programe).

test    Ovrednoti  argumente in vrne primerno vrednost
true    Vrne vedno true (uporabno za zanke)
false   vrne vedno false

Ukazi true, false in test


Ukaza true in false

Ukaz true vrne vedno vrednost 1 (true)
Ukaz false vrne vedno vrednost 0 (false)

Ukaz test

Ukaz ovrednoti parametre in vrne ustrezno vrednost. Na voljo imamo na primer naslednje možnosti:
-a file         #ali je file navadna datoteka
-b file         #ali je file posebna dat. tipa block
-c file         #ali je file posebna dat. tipa char.
-d file         #ali je file direktorij
-s file         #ali datoteka obstaja in ni prazna
-r file         #ali datoteko lahko beremo
-w file         #ali datoteko lahko spreminjamo
-x file         #ali datoteko lahko izvršujemo

string = patern         #ali je niz enak vzorcu
exp1 -eq exp2           #ali imata izraza isto vr.

Primeri stavkov lupine Korn

Zgled ukaza if
if test $blabla = b1 
    then
       echo prva moznost
elif test $beseda = b2
    then
      echo druga moznost
else
     echo kaksna druga moznost
fi

Zgledi sestavljenih ukazov ksh
#################################
echo Zgled ukaza for
for beseda in a1 a2 a3 a4 a5 a6 
  do
    echo izpis:$beseda
  done
###################################
echo Zgled ukaza select
echo Vnasas stevilko opcije, prekines s CTRL/D
echo Odvisno od izbire bos nastavil spremenljivko blabla
blabla=neznano  # default vrednost
select beseda in b1 b2 b3 b4 b5 
  do
    echo izbor: $beseda
    blabla=$beseda
  done
###################################
echo "\nZgled ukaza case"
case $blabla in
  (b1)
    echo izbral si prvo moznost;;
  (b2)
    echo izbral si drugo moznost;;
  (b3)
    echo izbral si tretjo moznost;;
esac

Zgled definicije funkcije
listanje() {
    echo vsebina direktorija
    ls -l *
}
################################
# Zgled klicanja funkcije
listanje

Primer preproste lupine v jeziku Korn

#Primer preproste lupine
while
    clear                     # Brisanje zaslona
    mesg=" \n=============================\n\n
        1 ... Logirani\n
        2 ... Direktorij\n
        3 ... Listanje\n
        4 ... Izstop\n
      \n  ==================================\n\n
    Izberi:\c"
 do
    echo $mesg           # Izpis menuja
    read ukaz              # Branje izbire
    case $ukaz in
        1)
            echo "\nLogirani so:"; who;;
        2)
             echo "\nSi v direktoriju:\c";  pwd;;
        3)
            echo "\nVsebina direktorija:";  ls -l *;;
        4) exit;;
    esac
    echo "\nPritisni ENTER\n"; read kkk 
done