Skript
Z MiS
(Rozdíly mezi verzemi)
(Přidány funkce) |
(→Vytvoření skriptu: Přidán shebang) |
||
| (Nejsou zobrazeny 3 mezilehlé verze od 1 uživatele.) | |||
| Řádka 6: | Řádka 6: | ||
* Lze zahrnout i podmínky, cykly, zadávat parametry apod. | * Lze zahrnout i podmínky, cykly, zadávat parametry apod. | ||
| + | == Vytvoření skriptu == | ||
| + | * Pro vyzkoušení můžete vytvořit jednoduchý skript „Hello world“: | ||
| + | * Připravte složku s názvem <tt>bin</tt> ve své domovské složce. | ||
| + | * Připravte v ní skript (vytvořte textový soubor) s názvem <tt>pozdrav</tt>. | ||
| + | * Do souboru zapište příkaz pro výpis "Ahoj světe" — bude fungovat ve Windows i v Linuxu: | ||
| + | echo "Ahoj světe" | ||
| + | * Soubor ale zatím není považován za spustitelný, to doplníme v dalším kroku. | ||
| − | == | + | <div class="Poznamka"> |
| + | V Unixu a Linuxu je zvykem na prvním řádku skriptu uvést, který shell se má použít pro interpretaci skriptu. Například: | ||
| + | #!/bin/bash | ||
| + | |||
| + | Toto se obvykle označuje jako „shebang line“. Pro spuštění Bashe je tedy vhodné skript v Linuxu zapsat takto: | ||
| + | #!/bin/bash | ||
| + | echo "Ahoj světe" | ||
| + | </div> | ||
| + | |||
| + | == Nastavení oprávnění a spuštění skriptu == | ||
=== Windows === | === Windows === | ||
* Příkazy zapište do souboru s příponou <tt>.bat</tt>. | * Příkazy zapište do souboru s příponou <tt>.bat</tt>. | ||
| Řádka 25: | Řádka 41: | ||
<div class="Upozorneni">POZOR! Pokud není skript v proměnné <tt>PATH</tt>, na rozdíl od Windows nestačí pro spuštění napsat ve složce skriptu: | <div class="Upozorneni">POZOR! Pokud není skript v proměnné <tt>PATH</tt>, na rozdíl od Windows nestačí pro spuštění napsat ve složce skriptu: | ||
skript | skript | ||
| + | </div> | ||
| + | |||
| + | === Zařazení do PATH === | ||
| + | * Skript nyní nejde spustit zapsáním jména skriptu, je třeba uvést cestu | ||
| + | ''$'' pozdrav | ||
| + | ''-bash: pozdrav: příkaz nenalezen'' | ||
| + | ''$'' ./pozdrav | ||
| + | ''Ahoj'' | ||
| + | * Pokud chcete skript spouštět pouze zapsáním jeho jména, přidejte složku <tt>bin</tt> do proměnné <tt>$PATH</tt>. | ||
| + | PATH=$PATH:~/bin | ||
| + | resp.: | ||
| + | set PATH=%PATH%;%USERPROFILE%\bin | ||
| + | * Vyzkoušejte, že skript již lze spustit tak, že napíšete pouze název. | ||
| + | |||
| + | * Můžete také přiřazení PATH vložit do inicializace Bashe tak, aby se vám proměnná nastavila automaticky při spuštění shellu. | ||
| + | |||
| + | <div class="Poznamka">Poznámka:<br /> | ||
| + | Pokud v Ubuntu existuje složka <tt>bin</tt> ve Vaší domovské složce, automaticky se přidá do proměnné <tt>PATH</tt>. | ||
| + | Tato akce se provede ve skriptu <tt>/.profile</tt>. | ||
</div> | </div> | ||
| Řádka 38: | Řádka 73: | ||
for ''název-proměnné'' in ''varianty-oddělené-mezerou-nebo-metaznak''; do ''příkaz'' $''název-proměnné'' | for ''název-proměnné'' in ''varianty-oddělené-mezerou-nebo-metaznak''; do ''příkaz'' $''název-proměnné'' | ||
* Příklady: | * Příklady: | ||
| + | for user in Franta Marie Karel; do echo Hello $user | ||
| + | Postupně pozdraví všechny uživatele — pro každého vypíše pozdrav "Hello Franta" apod. | ||
| + | for directory in data zalohy pokusy; do mkdir $directory | ||
| + | Vytvoří uvedené složky v aktuálním adresáři. | ||
for user in franta marie karel; do usermod -aG skupina $user | for user in franta marie karel; do usermod -aG skupina $user | ||
| + | Přidá všechny uvedené uživatelské účty do skupiny s názvem <em>skupina</em>. Musí spouštět správce počítače (<code>sudo</code>). Uživatelské účty musí existovat (<code>adduser</code>). | ||
Viz také: | Viz také: | ||
| Řádka 53: | Řádka 93: | ||
for %%x in (a*.jpg) do ren %%x %%x.bkp | for %%x in (a*.jpg) do ren %%x %%x.bkp | ||
for %%slozka in (data zalohy pokusy) do if not exist %%slozka md %%slozka | for %%slozka in (data zalohy pokusy) do if not exist %%slozka md %%slozka | ||
| − | |||
== Funkce == | == Funkce == | ||
Aktuální verze z 14. 1. 2026, 08:53
Obsah |
Co je skript?
- Pokud často spouštíme stejnou nebo podobnou posloupnost příkazů (třeba zálohování nějakých složek atd.), můžeme si zjednodušit práci.
- Zapíšeme tyto příkazy do souboru (označujeme ho jako skript) a spuštěním tohoto souboru se provedou všechny příkazy naráz.
- Lze zahrnout i podmínky, cykly, zadávat parametry apod.
Vytvoření skriptu
- Pro vyzkoušení můžete vytvořit jednoduchý skript „Hello world“:
- Připravte složku s názvem bin ve své domovské složce.
- Připravte v ní skript (vytvořte textový soubor) s názvem pozdrav.
- Do souboru zapište příkaz pro výpis "Ahoj světe" — bude fungovat ve Windows i v Linuxu:
echo "Ahoj světe"
- Soubor ale zatím není považován za spustitelný, to doplníme v dalším kroku.
V Unixu a Linuxu je zvykem na prvním řádku skriptu uvést, který shell se má použít pro interpretaci skriptu. Například:
#!/bin/bash
Toto se obvykle označuje jako „shebang line“. Pro spuštění Bashe je tedy vhodné skript v Linuxu zapsat takto:
#!/bin/bash echo "Ahoj světe"
Nastavení oprávnění a spuštění skriptu
Windows
- Příkazy zapište do souboru s příponou .bat.
- Takový soubor půjde spustit jako program.
- Spouštíme ho buď ze složky, kde je uložen:
skript.bat
- ... nebo ho přesuneme do složky, která je v proměnné PATH. Pak lze skript spustit ze kterékoli složky!
GNU/Linux
- Přípona souboru zde nerozhoduje, obvykle se žádná přípona nepřipojuje.
- Aby šel program spustit, musíme nastavit práva pro spuštění:
chmod a+x skript
- Skript musíme buď:
- přesunout do nějakého adresáře uvedeného v proměnné PATH,
- nebo spouštět s uvedením cesty:
./skript
POZOR! Pokud není skript v proměnné PATH, na rozdíl od Windows nestačí pro spuštění napsat ve složce skriptu:
skript
Zařazení do PATH
- Skript nyní nejde spustit zapsáním jména skriptu, je třeba uvést cestu
$ pozdrav -bash: pozdrav: příkaz nenalezen $ ./pozdrav Ahoj
- Pokud chcete skript spouštět pouze zapsáním jeho jména, přidejte složku bin do proměnné $PATH.
PATH=$PATH:~/bin
resp.:
set PATH=%PATH%;%USERPROFILE%\bin
- Vyzkoušejte, že skript již lze spustit tak, že napíšete pouze název.
- Můžete také přiřazení PATH vložit do inicializace Bashe tak, aby se vám proměnná nastavila automaticky při spuštění shellu.
Poznámka:
Pokud v Ubuntu existuje složka bin ve Vaší domovské složce, automaticky se přidá do proměnné PATH. Tato akce se provede ve skriptu /.profile.
Podmínky
- Pro studenty Cisco Networking Academy viz kurz NDG Linux Essentials.
- Pro ostatní například: LinuxExpres.cz → BASH.
Cyklus for
- Linux (bash)
- Základní syntaxe:
for název-proměnné in varianty-oddělené-mezerou-nebo-metaznak; do příkaz $název-proměnné
- Příklady:
for user in Franta Marie Karel; do echo Hello $user
Postupně pozdraví všechny uživatele — pro každého vypíše pozdrav "Hello Franta" apod.
for directory in data zalohy pokusy; do mkdir $directory
Vytvoří uvedené složky v aktuálním adresáři.
for user in franta marie karel; do usermod -aG skupina $user
Přidá všechny uvedené uživatelské účty do skupiny s názvem skupina. Musí spouštět správce počítače (sudo). Uživatelské účty musí existovat (adduser).
Viz také:
- Pro studenty Cisco Networking Academy viz NDG Linux Essentials.
- Pro ostatní například: LinuxExpres.cz → BASH.
- Windows
- Základní syntaxe:
for %název-proměnné in (varianty-oddělené-mezerou-nebo-metaznak) do příkaz %název-proměnné
- Příklady:
for %x in (a*.jpg) do ren %x %x.bkp for %slozka in (data zalohy pokusy) do if not exist %slozka md %slozka
- Ve skriptech je třeba znak procento zdvojit:
for %%x in (a*.jpg) do ren %%x %%x.bkp for %%slozka in (data zalohy pokusy) do if not exist %%slozka md %%slozka
Funkce
- Linux (bash)
- Deklarace funkce:
function název-funkce {
příkazy
}
- Volání funkce:
název-funkce