Shell skript: Porovnání verzí

Smazaný obsah Přidaný obsah
změna šablony
JAnDbot (diskuse | příspěvky)
m Robot opravil přesměrování na Ls - Změněn(y) odkaz(y) na ls (Unix); kosmetické úpravy
Řádek 3:
'''Shell skript''' je [[Scripting language|skript]] napsaný pro [[Shell (computing)|shell]], nebo [[příkazový řádek]], v [[operační system]]. Je často považován za [[programovací jazyky pro řešení konkrétního problému]]. Typické operace prováděné shell skriptem zahrnují manipulaci se soubory, provádění programování, a tisk textu.
 
Mnozí interpreti shell skriptu fungují jako [[příkazový řádek]], jako například různé [[Unix_shellUnix shell]], [[Windows PowerShell]] nebo [[MS-DOS]] <code>COMMAND.COM</code>. Jiní, jako například [[AppleScript]] nebo grafické [[Windows Script Host]] (WScript.exe), přidávají schopnost skriptování do počítačového prostředí bez nutnosti příkazového řádku. Další příklady [[programovací jazyk]]ů primárně určených pro shell skriptování jsou [[DIGITAL Command Language|DCL]] a [[Job Control Language|JCL]].
 
== Funkce ==
 
=== Zkráceně ===
V úplně nejzákladnější formě, shell skript poskytuje vhodnou variantu systémového příkazu kde je speciální nastavení prostředí, možnosti příkazů, nebo pozdější zpracování aplikováno automaticky, ale způsobem, který umožňuje novému skriptu působit jako normální Unix příkaz.
 
Jako příklad může být vytvoření zkrácené verze příkazu [[ls (Unix)|ls]], který slouží k výpisu adresářů a souborů, na příkaz <tt>l</tt>, který uložíme k uživateli do <tt>bin</tt> adresáře. Například <tt>/home/''username''/bin/l</tt>, odsud bude dodávána výchozí sada příkazů.
 
<source lang="bash">
Řádek 17:
</source>
 
Zde [[Shebang (Unix)|první řádek (Shebang)]] označuje který interpret by měl být použit k provedení zbytku skriptu, a druhý řádek vytvoří seznam s možnými atributy formát souboru, sloupce, všechny soubory (žádný vynechaný), a velikost v blocích. <tt>LC_COLLATE=C</tt> nastavuje výchozí nastavení aby se nemíchala malá a velká písmena dohromady, a <tt>"$@"</tt> způsobíže parametry zadané do <tt>l</tt> projdou jako parametry do ls tak, že všechny normální možnosti a celý syntax známý ls může být stále používán.
 
Uživatel by pak měl být schopen jednoduše používat <tt>l</tt> pro nejběžněji používaný krátký výpis.
Řádek 30:
</source>
 
V tomto případě by shell skript začal svým normálním počátečním řádkem <span style="font-family:courier">#!/bin/sh</span>. Následně skript provede příkaz <span style="font-family:courier">clear</span> který vyčistí terminál od veškerého textu před přechodem na další řádek. Následující řádek zajišťuje hlavní funkci skriptu. <span style="font-family:courier">ls -l -a</span> příkaz vytvoří seznam souborů a adresářů, které jsou v adresáři, ve kterém skript běží. Atributy <span style="font-family:courier">[[ls]]</span> příkazu mohou být libovolně měněny aby příkaz co nejvíce splnil potřeby uživatele.
 
=== Dávkování úloh ===
Shell skripty umožňují několika příkazům, které jsou ručně zadány do příkazového řádku, aby byly vykonány automaticky, bez nutnosti čekání na uživatele, který by spustil každou fázi posloupnosti. Například v adresáři se třemi zdrojovými soubory v C kódu, spíš než ručně rozbíhat čtyři příkazy potřebné pro sestavení finálního programu, stačí místo toho vytvořit [[C shell]] skript, zde pojmenovaný <tt>build</tt> a uložit ho do adresáře se soubory, kde je po spuštění automaticky spojí:
 
Řádek 45:
</source>
 
Tento skript uživateli umožní po editaci, zapauzování editoru a následném napsání <tt>./build</tt> vytvoření updatovaného programu, jeho otestování a poté vrátí uživatele zpět do editoru. Od roku 1980 jsou takovéto skripty nahrazovány programy jako [[Make|make]], které se specializují na kompilaci programů.
 
=== Běžné používání ===
Jednoduché dávkované úlohy jsou obvyklé pro izolované úlohy, ale použití shell smyček, testů, a proměnných nabízí uživateli mnohem větší flexibilitu. [[Bash]] skript pro převod obrázků ve formátu JPEG na PNG formát, kde jsou jména obrázků k dispozici v příkazovém řádku - lze i pomocí zástupných znaků - namísto toho, aby byly uvedeny ve skriptu. Takto vytvořený skript nazveme například jpg2png.
 
<source lang="bash">
#!/bin/bash
for jpg in "$@" ; do # proměnná $jpg načítá postupně parametry ze vstupu
png="${jpg%.jpg}.png" # vytvoří PNG verzi souboru přepsáním .jpg na .png
echo converting "$jpg" ... # vypíše informaci, že skript běží
Řádek 61:
exit 1
fi # konec podmínky "if"
done # konec cyklu "for"
echo all conversions successful # vypíše hlášku uživately
exit 0
</source>