operátor pipe (|) sa používa na spustenie dvoch alebo viacerých súvisiacich príkazov súčasne. Vstupom nasledujúceho príkazu bude výstup predchádzajúceho príkazu. Úspech každého príkazu teda závisí od úspechu predchádzajúceho príkazu bez prvého príkazu. V nasledujúcom príkaze prvý príkaz, ls zistí zoznam súborov a priečinkov aktuálneho umiestnenia a odošle výstup ako vstup pre druhý príkaz, wc . Na základe vstupných údajov vytlačí celkový počet riadkov, slov a znakov.
$ls -ten | wc našťastie
Operátor stredníka (;)
Operátor bodkočiarky (;) je zvyknutý vykonávať súčasne dva alebo viac nesúvisiacich príkazov. To znamená, že výstup každého príkazu nezávisí od iných príkazov. V nasledujúcom príklade sú tri typy príkazov skombinované dohromady a zlyhanie každého príkazu nebude mať vplyv na výstup iných príkazov. Prvý príkaz vytlačí obsah súboru, druhý príkaz vytvorí adresár a tretí príkaz zmení aktuálny adresár.
$katmyfile.txt;mkdirnewdir;CDPracovná plocha
Logický operátor AND (&&)
Príkazy, ktoré spúšťa Logical AND (&&), navzájom súvisia ako príkaz pipe (|). Ak sa teda predchádzajúci príkaz úspešne nespustí, nasledujúce príkazy nebudú fungovať. V nasledujúcom príklade sú dva príkazy, mkdir a rmdir kombinované operátormi &&. Príkaz mkdir sa teda nepodarilo úspešne vykonať, potom sa príkaz rmdir nevykoná. Podľa výstupu príkazu ls adresár myDir už v aktuálnom umiestnení existuje. Prvý príkaz sa teda nespustí a pre tento druhý príkaz sa tiež nespustí.
$ls$mkdirmyDir&& rmdirtepl
$ls
Logický operátor OR (||)
Logický operátor OR (||) je opakom logického operátora AND (&&). Ďalší príkaz sa vykoná, ak sa predchádzajúci príkaz nepodarí vykonať. V nasledujúcom príklade sú tri príkazy mačky kombinované s operátorom OR (||). Keď spustíte príkaz, v prvom rade sa pokúsi zobraziť obsah súboru cat.txt. Ak taký súbor v aktuálnom umiestnení neexistuje, pokúsi sa vykonať nasledujúci príkaz. Podľa výstupu súbor bird.txt existuje v aktuálnom umiestnení a zobrazí sa obsah tohto súboru.
$ cat cat.txt || mačka dog.txt || mačací vták.txt
Viac príkazov s viacerými operátormi
Na spustenie viacerých príkazov naraz môžete použiť viacero operátorov. V nasledujúcom príklade sú tri príkazy kombinované s operátormi OR (||) a AND (&&). Po spustení príkazu v prvom rade zmení aktuálny adresár na newdir, ak adresár existuje. Ak tento príkaz zlyhá, vytvorí adresár vykonaním druhého príkazu a vytlačí správu, adresár sa vytvorí. Podľa výstupu adresár newdir v aktuálnom umiestnení neexistuje. Zobrazí sa teda chybové hlásenie a adresár sa vytvorí neskôr.
$CDnewdir|| mkdirnewdir&& zahodil 'adresár je vytvorený'
Kombinovaný operátor {}
Pomocou tohto operátora je možné kombinovať dva alebo viac príkazov a ak vykonanie prvého príkazu zlyhá, druhý príkaz sa nevykoná. V nasledujúcom príklade sa operátory OR, AND a kombinácia používajú spoločne. Prvé príkazy skontrolujú, či dočasný adresár v aktuálnom umiestnení existuje alebo nie. Ak prvý príkaz zlyhá, vytvorí dočasný adresár a vytlačí správu. Posledný príkaz zobrazí aktuálny zoznam adresárov.
$[ -dtepl] || { mkdirteplota;zahodildočasný adresár je vytvorený;} && ls
Operátor prednosti ()
Tento operátor môžete použiť na zoskupenie príkazov v čase vykonania. Tu bude každá skupina pracovať ako jedna úloha. V nasledujúcom príklade sú definované dve skupiny príkazov a ak sa prvej skupine nepodarí vykonať, spustí sa druhá skupina.
$(CDtepl&& ls-do) || (mkdirtepl&& ls)
Záver
Tento tutoriál vysvetlil najčastejšie používané operátory na spustenie viacerých príkazov v systéme Linux. Ale v bash existuje mnoho ďalších operátorov, ktoré sa používajú na spustenie dvoch alebo viacerých príkazov súčasne. Ide o ampersand (&), presmerovanie (, >>), logické NOT (!), Kombináciu ({}) atď.