Scriptovanie na predmete Uvod do operacnych systemov
#!/bin/bash
echo "Hello World!"
bash ahoj.sh
chmod u+x ahoj.sh
./ahoj.sh
# Jednoriadkovy komentar
: 'toto
je
viacriadkovy
komentar'
#!/bin/bash
N=10
echo $N
echo "Moje cislo: $N"
Označenie | Význam |
---|---|
${#N} | Dĺžka premennej N |
${N:3} | Premenná N, odrezané prvé 3 znaky |
${N:3:5} | Premenná N, odrezané prvé 3 znaky, dĺžka 5 znakov |
${N:3:5} | Premenná N, prvých 5 znakov |
${N:=6} | Premenná N (ak existuje) Ak neexistuje, vytvorí ju a nastaví na hodnotu 6 |
${N/4/6} | V premennej N hľadá prvú hodnotu 4 a nahradí ju hodnotou 6 |
${N//4/6} | V premennej N hľadá všetky hodnoty 4 a nahradí ju hodnotou 6 |
${N#123} | Z premennej N odstráň 123 na začiatku |
${N%123} | Z premennej N odstráň 123 na konci |
${N,} ${N,,} |
Zmena prvého znaku premennej N na malé písmeno Zmena všetkých znakov premennej N na malé písmeno |
${N^} ${N^^} |
Zmena prvého znaku premennej N na veľké písmeno Zmena všetkých znakov premennej N na veľké písmeno |
variables.sh |
#!/bin/bash
read -p "Zadaj meno: " $MENO
echo "Ahoj $MENO"
read -t5 -p "Zadaj meno do 5 sekund: " $MENO
read -n7 -p "Zadaj text, maximalne 7 znakov: " $TEXT
read -s -p "Zadaj heslo: " # nebude vidiet pri pisani
./helloworld.sh prvyArgument nejakyInyArgument 25 "Neviem vymysliet originalny priklad"
Označenie | Význam |
---|---|
${0} - ${225} | Prístup ku danému argumentu |
$# | Počet argumentov |
$@ | Zoznam argumentov ako samostatné reťazce |
$* | Zoznam argumentov ako jeden reťazec |
Exit status of last command
#!/bin/bash
echo $?
#!/bin/bash
echo $(( 2 + 6 )) # + - * / %
echo $(( N+=2 )) # += -= *= /= %=
echo $(( 2 < 4 )) # > < >= <= == !=
let RESULT=2**8
0 | true |
1 | false |
Celé čísla | -eq -ne -lt -le -gt -ge |
Reťazce | -z -n = != =~ < > |
Súbory | -r -w -x -f -d -e -s -ef -nt -ot |
&& -a | | -o ! |
Pomocou [ ]
, [[ ]]
(nemusí byť kompatibilné s inými shell-mi)
Alebo príkazom test
[ -f prvy.sh ]
test $A -lt 10 -a $A -ge 0
#!/bin/bash
N=5
if [ $N -gt 4 ]; then
echo "ano"
elif [ $N == 4 ]
then
echo "mozno"
else
echo "nie"
fi
#!/bin/bash
read -p "Zadajte cislo: "
if [ $REPLY -eq 0 ]; then
echo "Zadali ste 0"
elif [ $REPLY -gt 0 ]; then
echo "Zadli ste zaporne cislo"
else
echo "zadali ste kladne cislo"
fi
#!/bin/bash
read -p "Zadaj heslo: "
case $REPLY in
bumbac)
echo "Spravne heslo, vitajte $USER"
;;
heslo)
echo "Takto to nefunguje..."
;;
*)
echo "Nespravne heslo"
;;
esac
#!/bin/bash
# klasicky for
for (( i = 0; i < 10; i++ ))
do
echo $i
done
#!/bin/bash
# pythonoidny for
# vypise cisla od 1 po 15
for i in $(seq 1 15)
do
echo $i
done
#!/bin/bash
# vypise pismena od A po F
for i in {A..F}
do
echo $i
done
#!/bin/bash
# vypise vsetky argumenty
for i in $@; do
echo $i
done
#!/bin/bash
x=1
while [ $x -le 5 ]
do
echo "Variable X is now equal to $x"
x=$(( $x+1 ))
done
#!/bin/bash
y=1
while test $y -ne 10
do
echo $y
((y++))
done
#!/bin/bash
# until - opak while - "while not"
let z=3**3
until [ $z -le 0 ]
do
echo $z
let z--
done
#!/bin/bash
#!/bin/bash
a=5
b=6
PS3="vyberte si s operaciu: "
select op in + - "*" / %
do
case $op in
+|-|"*"|/|%)
echo "$a $op $b = $(($a $op $b))";;
*)
echo "koniec"
break;;
esac
done
PS3 - prompt pre výber
#!/bin/bash
# klasicka definicia funkcie
# argumenty sa nezadavaju?
sucet() {
echo $(($1 + $2))
return 0
}
#polopythonoidna definicia funkcie
function rozdiel {
echo $(($1 - $2))
return 0
}
if test $# -ge 2
then
temp=$(sucet $1 $2)
echo "sucet je $temp"
temp=$(rozdiel $1 $2)
echo "rozdiel je $temp"
fi
#!/bin/bash
mocnina() {
local x=0
read -p "zadaj cele cislo: " x
echo $((x**2))
return 0
}
vysledok=$(mocnina)
echo "mocnina zadaneho cisla je $vysledok"
local - lokálna premenná funkcie2.sh
#!/bin/bash
# delaracia pola
declare -a pole0
pole0+=(nejake nahodne elementy)
echo ${pole0[2]}
# delkaracia pola priradenim hodnot
pole=(jeden dva tri)
echo ${pole[1]}
# pridavanie do pola
pole+=(styri pat "s e s t")
echo ${pole[5]}
#!/bin/bash
#!/bin/bash
# deklaracia asociativneho pola
declare -A pole
pole=([auto]=car [strom]=tree [jablko]=apple)
pole[voda]=water
echo "auto sa povie ${pole[auto]}"
echo "voda sa povie ${pole[voda]}"
echo "pocet prvkov pola: ${#pole[@]}"
echo "vsetky prvky: ${pole[*]}"
echo "vsetky prvky cez for loop: "
for i in ${pole[@]}
do
echo $i
done
echo "vsetky kluce prvkov pola: "
for i in ${!pole[@]}
do
echo $i
done
Upozornenie
Tento repozitár obsahuje moje riešenia zadaní, prípadne semestrálnej práce
Kód je zverejnený výhradne na vzdelávacie účely ako inšpirácia pre ostatných
Použitie tohto kódu na odovzdanie ako vlastné riešenie (plagiátorstvo) je prísne zakázané a môže viesť k disciplinárnym opatreniam
Ak si z tohto repozitára beriete inšpiráciu, uistite sa, že rozumiete riešeniam a vytvorte si vlastnú implementáciu
Autor nenesie zodpovednosť za akékoľvek následky vyplývajúce z nesprávneho použitia tohto materiálu, vrátane prípadných obvinení z plagiátorstva