Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

vyuka:vytvoreni_scriptu [2023/11/15 20:54] (aktuální)
Řádek 1: Řádek 1:
 +==== Vytvoření scriptu ====
 +//Skript// je textový soubor (plaintext), ve kterém se za sebou uvádějí příkazy shellu (či jiného interpreteru). Příkazy napsané v textovém souboru budou vykonány jeden za druhým - jako byste je psali a odentrovávali na klávesnici.
  
 +Skripty se hodí pro možnost opakování nějaké činnosti. Vlastně to jsou //počítačové programy//. Často první, které člověk v životě napíše.
 +
 +
 +=== Editace souboru ===
 +Textový soubor lze vytvořit a editovat v GUI editorech jako je //gedit//, //Mousepad//, (na windows //poznámkový blok - notepad//, //pspad//,...) apod.
 +V příkazové řádce lze zpravidla použít editory //nano//, //vi//, //vim//,... - ty oplývají interaktivním rozhraním. K zápisu do souboru lze ale použít i samotný shell - operátory ''>'' a ''>>''
 +
 +=== Hlavička ===
 +Protože Linux nerozpoznává soubory primárně podle přípony, je dobrým zvykem na prvním řádku scriptu uvádět příslušný interpreter jako speciální komentář (např. ''#!/bin/bash''). Lze tím rozlišovat mezi jazyky BASH/shell/Python/awk a dalšími.
 +
 +=== Práva ===
 +Čerstvě vytvořený textový soubor má většinou pro vlastníka oprávnění **r**ead, **w**rite - ale ne e**x**ecute. Nelze jej jako skript spustit, dokud mu právo e**x**ecute nenastavíte:
 +<code bash>
 +chmod +x jmeno-skriptu
 +</code>
 +
 +=== Spuštění skriptu ===
 +  * Skript shellu v aktuálním adresáři lze spustit příkazem ''./jmeno-skriptu''
 +  * Pokud by byl skript v adresáři ležícím v systémové cestě (''$PATH''), lze jej volat jako libovolný jiný program, tedy přímo napsáním ''jmeno-scriptu''
 +  * Lze jej zavolat také s použitím absolutní či relativní cesty - např. ''/home/uzivatel/muj-skript.sh''
 +  * Také lze manuálně specifikovat interpretr: ''/bin/bash muj-skript'', ''python program.py'', ''awk -f neco.awk''
 +
 +
 +===Příklad scriptu===
 +<code bash>
 +#!/bin/bash
 +echo "Ahoj, zadej číslo"
 +read -r cislo
 +echo "Zadal jsi $cislo"
 +</code>
Nahoru