PROGRAMOVÁNÍ V SHELLU

Podobné dokumenty
Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.

PSK3-9. Základy skriptování. Hlavička

Skripty - úvod. Linux - skripty 2

C2110 Operační systém UNIX a základy programování

Sekvenční a podmíněné provádění

Přednáška 8. Proměnné. Psaní a ladění skriptů. Parametry skriptu. Vstup a výstup. Konfigurační soubory shellu. Úvod do Operačních Systémů Přednáška 8

ŘÍDÍCÍ STRUKTURY - PODMÍNKY

Programovací jazyk Pascal

Úvod do Operačních Systémů

Střední odborná škola a Střední odborné učiliště, Hořovice

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Nastroje na zpracovani textu:

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

Střední odborná škola a Střední odborné učiliště, Hořovice

BASH. Kouzla s příkazovou řádkou. Petr Koloros

Proměnné a parametry. predn_08.odt :00:38 1

Algoritmizace a programování

- jak udělat konstantu long int: L long velka = 78L;

A7B38UOS Úvod do operačních systémů. 6. Cvičení. Příkazy sed a awk

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

X36UNX 16. Numerické výpočty v sh příkazy expr, bc, dc. Zdeněk Sojka

Úvod do Operačních Systémů

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

Stručný návod k programu Octave

PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky.

C2110 Operační systém UNIX a základy programování

10 Algoritmizace Příklad 2 Word 2007/ VBA

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Textové soubory

VISUAL BASIC. Práce se soubory

Úvod do programování. Lekce 1

Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

DUM 20 téma: Test dávky

AUTOMATIZACE ÚKONŮ SPRÁVY OPERAČNÍCH SYSTÉMŮ II. Ing. Petr Klimša

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Funkce, podmíněný příkaz if-else, příkaz cyklu for

Přednáška 1. Úvod. Historie OS Unix. Architektura OS Unix. Interpret příkazů. SHELL. Zpracování příkazové řádky. Speciální znaky. Zkratky příkazů.

Úvod do Linuxu. SŠSI Tábor 1

Programy na PODMÍNĚNÝ příkaz IF a CASE

Domácí příprava k předmětu YD38UOS Úloha 10 práce s lokálními soubory pokračování

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

Úvod do Operačních Systémů

DSL manuál. Ing. Jan Hranáč. 27. října V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

Rozšíření ksh vůči sh při práci s proměnnými

Basic256 - úvod do programování Příklady. ing. petr polách

Programování v jazyce JavaScript

Identifikátory označují objekty v programu používané (proměnné, typy, podprogramy).

Cvičení 2. Přesměrování vstupu a výstupu. Posloupnost příkazů. Příkazy pro informaci o uživatelích

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

Sada 1 - Základy programování

Přednáška 4. Regulární výrazy. Filtry grep, sed a awk. Úvod do Operačních Systémů Přednáška 4

Základy operačního systému LINUX část III

Vstupní požadavky, doporučení a metodické pokyny

Větvení a cykly. Úvod do programování 1 Tomáš Kühr

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

Přednáška 1. Úvod. Historie OS Unix. Architektura OS Unix. Interpret příkazů SHELL. Zpracování příkazové řádky. Speciální znaky. Zkratky příkazů.

Algoritmizace prostorových úloh

C# konzole Podíl dvou čísel, podmínka IF

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11

Algoritmy a datové struktury

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Úvod do Unixu. man: příkaz pro zobrazení nápovědy k danému příkazu, programu (pokud je k dispozici), např. man cp. pwd: vypíše cestu k aktuální pozici

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z

6 Příkazy řízení toku

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Preprocesor a koncepce (větších) programů. Úvod do programování 2 Tomáš Kühr

Regulární výrazy. Filtry grep, sed a awk.

Unix je víceuživatelský a víceúlohový OS

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Jednoduché příkazy jazyka Pascal

Základní příkazy UNIXu (Linuxu)

Martin Hejtmánek hejtmmar

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

MS Excel Základy maker. Operační program Vzdělávání pro konkurenceschopnost. Projekt Zvyšování IT gramotnosti zaměstnanců vybraných fakult MU

Operační systém UNIX

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11

Správa procesů - manipulace s procesy, signály

Makro. PDF vytvořeno zkušební verzí pdffactory Pro

LINUX přesměrování a roury

1. Uživatelská úprava příkazů I.

Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi)

more Program se zastaví vždy po vypsání jedné stránky textu. Ukončení Ctrl+C less Umožňuje pohybovat se v souboru dopředu i dozadu.

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Algoritmizace prostorových úloh

Jazyk C# a platforma.net

Příkazová řádka. predn_02.odt :55:55 1

Programování v jazyce C pro chemiky (C2160) 4. Textové řetězce, zápis dat do souboru

Základy PERLu snadno a rychle

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

Programování v jazyce C pro chemiky (C2160) 5. Čtení dat ze souboru

1/1 ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018

Začínáme vážně programovat. Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů

HROMADNÉ ÚPRAVY NAJÍT A NAHRADIT

Uplatnění metod na zvolený jazyk

SPJA, cvičení 1. ipython, python, skripty. základy syntaxe: základní datové typy, řetězce. podmínky: if-elif-else, vyhodnocení logických výrazů

Lekce 25 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

Regulární výrazy. Vzory

Transkript:

PROGRAMOVÁNÍ V SHELLU Prostředí, jazyk, zdrojový kód chceme-li posloupnost jistých příkazů používat opakovaně, případně z různých míst adresářové struktury, můžeme tuto posloupnost uložit souboru, který necháme zpracovat interpretrem příkazů interpretr příkazů může být sh, bash nebo další cestu k interpretru příkazů zadáme v prvním řádku zdrojového kódu takto: #! /bin/bash souboru necháme bez přípony (Linux sám rozpozná typ souboru podle obsahu) nebo mu přidáme příponu.sh nezapomeňte po vytvoření souboru zkontrolovat práva (k jej chce spouštět, musí mít právo x) soubor spustíme voláním shellu s parametrem tvořeným jménem souboru sh jmeno_skriptu nebo jej necháme zpracovat aktuálním shellem (příkaz tečka). jmeno_skriptu Proměnné Proměnné není třeba před použitím deklarovat Datový typ je přiřazen prvním použitím proměnné Při prvním použití zadáváme pouze jméno proměnné Při každém dalším použití se na proměnnou odkazujeme pomocí znaku lar Výpis na obrazovku Pomocí příkazu echo a uvozovek. Proměnné se přiřadí hodnota a ta se vypíše. x=5 echo "Hodnota proměnné x je $x." 3.3.2012 skriptování 1

Čtení z klávesnice Pomocí příkazu read promenna, čte vstup až stisku klávesy enter, vše přiřadí jedné proměnné Můžeme načíst současně více proměnných pomocí read promenna1 promenna2 promenna3, každý úsek oddělený mezerníkem se načte nové proměnné read x echo "Hodnota proměnné x je $x." read jmeno prijmeni echo "uživatel se jmenuje: $jmeno $prijmeni" Uvozovky a apostrofy " " Normální uvozovky. Řetězec uvnitř těchto uvozovek je chápán jako obyčejný text, metaznaky jsou ignorovány. Do textu jsou vkládány hodnoty proměnných. ' ' Apostrof vedle klávesy enter. Řetězec uvnitř těchto apostrofů je chápán shellem jako obyčejný text, je zamezeno nahrazování proměnných jejich hodnotou ` příkaz ` Obrácené apostrofy. Řetězec je shellem chápán jako příkaz k vykonání; tento řetězec je vykonán před zpracováváním zbytku řádku a výsledek příkazu nahradí původní řetězec ` retezec `. Novější ekvivalent těchto apostrofů je $(příkaz) text=10; echo "text je $text;" # vytiskne: text je 10; text=10; echo 'text je $text;' # vytiskne: text je $text; text=whoami; echo `$text;` # vypise napr: sstetina Logické výrazy K vyhodnocení logického výrazu používáme konstrukci [ testovany vyraz ] (pozor na povinné mezery kolem závorek). Testovat lze např.: Typ souboru o f soubor existuje soubor a je obyčejným souborem? o d soubor existuje soubor a je adresářem? Práva k souboru o r soubor můžu číst soubor? 3.3.2012 skriptování 2

o w soubor můžu zapisovat souboru? o x soubor mohu soubor spustit? o O vlastním soubor? o N byl soubor od posledního čtení změněn? Řetězce o řetězec1=řetězec2 jsou řetězce identické? o řetězec1!= řetězec2 jsou řetězce rozdílné? o z řetězec je délka řetězce nulová (je řetězec prázdný)? o n řetězec je délka řetězce nenulová? o řetězec1<řetězec2 je řetězec1 abecedně před řetězcem2? o řetězec1>řetězec2 je řetězec1 abecedně za řetězcem2? Numerické testy o číslo1 eq číslo2 čísla 1 a 2 se rovnají o číslo1 ne číslo2 čísla se nerovnají o číslo1 lt číslo2 číslo 1 je menší než číslo 2 o číslo1 le číslo2 číslo 1 je menší nebo rovno číslu 2 o číslo1 gt číslo2 číslo 1 je větší než číslo 2 o číslo1 ge číslo2 číslo 1 je větší nebo rovno číslu 2 Testování výrazu se často používá ve spojení s podmínkou (if then else fi). Aritmetické výrazy vyhodnocení matematického výrazu se dá provést pomocí o příkazu expr, spojeného s obrácenými apostrofy nebo příkazem $() např. x=$(expr $x + 1)nebo x=`expr $x + 1` o příkazu $(()) např. x=8 y=4 z=$(($x + $y)) echo "Součet $x a $y je $z" Řídicí konstrukce Podmínka if if výraz; then příkazy1; [ elif příkazy2; then příkazy3; ]... [ else příkazy4; ] fi if grep -q roman /etc/passwd; then echo Roman je tam else 3.3.2012 skriptování 3

fi echo neni tam if [ -f /etc/foo ] then #Soubor existuje. Zkopíruj tedy soubor cp /etc/foo. echo "Hotovo!" else # Soubor neexistuje. Vypiš tedy chybu echo "Soubor neexistuje!" exit fi Vícenásobné větvení case case slovo; in vzor1) příkazy;; vzor2) příkazy;; *) příkazy;; esac read p znak? znak echo n znak $znak je: case $znak in [0-9]) echo cislo.;; [A-Z]) echo velke pismeno.;; [a-z]) echo male pismeno.;; *) echo jiny znak;; esac Cykly Cyklus for: předem znám počet opakování for promenna in seznam prvky seznamu jsou odděleny mezerou nebo tabulátorem for i in 1 3 5 7 echo $i 3.3.2012 skriptování 4

místo konkrétních hodnot může být na místě seznamu žolík zástupný znak, např. znak hvězdička: for i in `ls *.html` echo $i Cyklus while cyklus bude probíhat, kud je podmínka splněna while prikaz while who grep huzva > /dev/null sleep 20s echo "Už se odlásil" x=0; # inicializuje hodnotu x na 0 while [ "$x" -le 10 ]; echo "Aktuální hodnota x: $x" # zvýšení hodnoty x o 1 x=$(expr $x + 1) sleep 1 Cyklus until další průchod cyklem nastane, pokud není podmínka splněna (není platná) until prikaz until who grep huzva > /dev/null; sleep 20s; echo "Už se přihlásil" 3.3.2012 skriptování 5