Ako spustiť viac príkazov v systéme Linux

How Run Multiple Commands Linux



Na spustenie z terminálu v systéme Linux sú potrebné rôzne typy príkazov. Niekedy potrebujeme spustiť viac príkazov naraz, kde môžu príkazy na sebe závisieť alebo nie. Spustenie viacerých príkazov naraz sa nazýva reťazenie príkazov. Na reťazenie príkazov na rôzne účely je možné použiť mnoho typov operátorov. Tento tutoriál ukazuje, ako môžete spustiť dva alebo viac príkazov pomocou najčastejšie používaných operátorov.

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ď.