Programování prostředí je zábava. Ale také je to Python. Lidé s pozadím C nebo nejdůležitější lidé, kteří používají okna, nebudou souhlasit. Lidé často preferují použití grafického rozhraní než rozhraní příkazového řádku. Ale to je tak úplně špatně. Grafické uživatelské rozhraní je pro lidi, kteří si myslí, že software dělá to, co jeho popis říká, že to dělá. To však není vždy pravda. Obzvláště v případě oken programování prostředí, kde viry a malwares vytvořily chaos, který je velikostí tornáda. Takže lidé používající rozhraní příkazového řádku by obvykle souhlasili, že to, co dělají, je správné, a já s nimi souhlasím, že mají pravdu.

Mnohokrát byste obvykle uvízli a celý počítač visí kvůli jednoduchému softwaru založenému na grafickém rozhraní. Práce na rozhraní příkazového řádku je často elegantnější, rychlejší a co je nejdůležitější, víte, co provádíte. Ale opět, použití skořápek a psaní programů není něco, co by každý chtěl raději dělat.

Kromě toho by psaní programů v jazyce C nebo Java bylo ve skutečnosti mnohem horší než používání softwaru založeného na grafickém uživatelském rozhraní v systému Windows. Nejsem proklínání C nebo Java zde, je to jen, že nejsou vhodné pro každodenní použití. A tady vynikají skriptovací jazyky, jako je programování Shell a Python. Dnes jsme tedy ve válce, která je vhodnější pro menší i větší aplikace. Nebo je to tak, že je můžeme oba spojit dohromady a udělat z nich něco nového a lepšího. Podívejme se hlouběji na oba a uvidíme, kam nás to zavede.

Bash Shell skriptování

Shell Scripting je opravdu úžasný. Většinu svých úkolů můžete dělat téměř v jednom řádku kódu. Řekněme například, vezměte si tento kód: -

$ touch file.txt | echo -e 'ahoj \ n Nový \ n Svět \ n ahoj \ n Ahoj' >> file.txt | cat file.txt | řadit | uniq | wc -l

Jak vidíte, tady se děje spousta shell skriptů, ale co se přesně děje? Nejprve '| 'se nazývá potrubí. Používá se k přenosu výstupu jednoho souboru do druhého. Syntaxe „touch“ se používá k vytvoření libovolného souboru a syntaxe echo se používá k tisku libovolného příkazu. Oboustranné oboustranné šipky „>>“ se používají k vložení výstupu do jakéhokoli souboru nebo programu. Syntaxe 'cat' se používá ke čtení obsahu souboru. Třídění se používá k třídění všeho v pořádku a 'uniq' se používá k odstranění duplikátů ze třídění. 'Wc' se používá pro počítání řádků a -l je pouze příznak pro jejich tisk. Všechny tyto zřetězené příkazy tedy provádějí následující.

  1. Nejprve se vytvoří soubor s názvem souboru s příponou txt, který informuje, že se jedná o textový soubor.
  2. Za druhé, echo -e se používá k tisku více slov uvnitř souboru file.txt a 'lomítko n' nebo '\ n' se používá k zadání nového řádku nebo k přechodu na další řádek.
  3. Po zadání řetězců do souboru je soubor načten, seřazen v pořadí a přenesen do syntaxe uniq, aby se odstranily všechny duplikáty, zde v našem případě „ahoj“.
  4. Nakonec vytiskneme počet řádků pomocí 'wc -l' a spočítáme a vytiskneme je na obrazovce terminálu.

Takže i když výše uvedené je pouze jeden řádek kódu, může mít tendenci se komplikovat, když se vloží více podmínek. Shell skripty jsou tedy dobré, ale nemohou být použity k provádění nových úloh po celou dobu. Někdy chcete, aby věci byly jednodušší, stejně jednoduché jako grafické uživatelské rozhraní. Shell skripty jsou ve skutečnosti velmi dobré pro spouštění dávkových skriptů a provádění opakovaných úloh, ale zároveň přicházejí s některými nevýhodami: -

  1. Shell skripty inklinují být extrémně komplikovaný jak oni stanou se velcí.
  2. Opětovné použití skriptů není téměř žádné. Co mám na mysli zde je, že bash skripty se extrémně obtížně vkládají do C nebo jiných Java kódů.
  3. Pokročilé funkce, jako je analýza HTML, nejsou pro bash snadno dostupné.

Existuje zde však Python pro záchranu a nejvhodnější náhrada za něj. Je však skriptování Bash Shell zcela vyměnitelné? Podívejme se na to.

Doporučené kurzy

  • Online certifikační školení v J2EE Komplexní
  • Odborné školení v programování R
  • Online certifikační školení v programování Go
  • Školení na Haskell Program

Skriptování Python Shell

Python je standardně nainstalován na téměř všech systémech Linux a UNIX. Někdy může mít distribuce starší verzi, ale lze ji aktualizovat pouhým jednoduchým příkazem. Programování Python Shell je mnohem snazší pochopení a čistší psaní i pro začátečníky. Ve výchozím nastavení má Python také styl čtení opakované smyčky pro čtení, který pomáhá při vyzkoušení nových kódů v interpretu. Ale pouhé použití pythonu může být trochu obtížné bez pomoci skriptování v bash shellu. Kromě toho jsme v našem předchozím jednomřádkovém programu použili syntaxi 'uniq' k odstranění duplikátů, ale neukazovali nám, jaké duplikáty jsou. Takže umožňuje napsat pythonový program, aby udělal totéž: -

#! / usr / bin / env pythonimport sys # import systémových modulů pro práci s adresáři filesif __name__ == “__main __”: # Počínaje prázdným slovníkem zde. Který se nazývá pořadí # Všechny klíče v tomto slovníku se zobrazují jako jméno a zadané hodnoty pro ně budou představovat počet zobrazení konkrétního jména.order = () # sys.stdin je objekt používaný pro soubory. Všechny ty funkce, na které se vztahuje

# objekt souboru lze také použít pro sys.stdin.

pro objednávku na sys.stdin.readlines ():

order = order.strip ()

pokud objednávka v objednávkách:

objednávky (objednávka) + = 1

jiný:

objednávky (objednávka) = 1

pro objednávku, počet v objednávkách.iteritems ():

sys.stdout.write (“% d \ t% s \ n”% (počet, objednávka))

Nyní tento soubor nejprve přečte vstup z objektu sys.stdin. Veškerý výstup je zapsán do objektu sys.stdout. Po vytvoření tohoto skriptu za předpokladu, že jste ho pojmenovali jako order.py, stačí v terminálu spustit následující skript shellu a najdete celkový počet všech duplikovaných řetězců.

$ cat file.txt | python order.py

Podobně to můžeme také vyřešit pomocí syntaxe řazení: -

$ cat file.txt | python order.py | řadit -rn

Python Shell vs Bash Shell Programovací skriptování

Nyní jsme viděli, jak můžeme kombinovat pythonové a shellové skripty, abychom vytvořili řetězec příkazů a provedli je společně. Nyní jdeme o krok dále a uvidíme, jestli Python dokáže Bash Shell úplně nahradit.

Když už mluvíme o programování bash shell, co se týče výkonu, bash naprosto porazí kecy z pythonu. Ale pokud to porovnáte s datovými typy a dalšími pokročilými věcmi, bash nemá moc kompatibility. Čas spuštění skriptu pro bash shell je 2, 8 milionu sekund, zatímco čas Pythonu je 11, 1 miliónů sekund. Abych byl upřímnější, bash je jazyk pro univerzální použití stejně jako Python, ale oba mají své silné a slabé stránky. Programování shellu Bash je výchozím terminálem ve většině distribucí Linuxu, a proto bude z hlediska výkonu vždy rychlejší. Znamená to ale, že může úplně nahradit Python? Ani náhodou. Při práci s velkými programy bude Bash stále komplikovanější, zatímco Python ne. Python lze také použít jako objektově orientovaný jazyk, pokud vím. Pokud jste jen začátečník, možná ani nepoznáte rozdíl mezi nimi. Python je nejelegantnější skriptovací jazyk, dokonce více než Ruby a Perl. Programování shellu Bash na druhé straně je ve skutečnosti velmi vynikající, pokud jde o vyvedení výstupu z jednoho příkazu do druhého.

Shell Scripting je jednoduchý a není tak silný jako python. Nezabývá se rámci a je obtížné jít s webovými programy pomocí Shell Scripting. Skutečná síla skriptování prostředí spočívá v editoru Stream Text nebo sedu, programech Awk a podobných aplikacích.

Zpracování souborů a vývoj webových aplikací

Skriptování Bash Shell pracuje při práci se soubory bezchybně a rychle. Zpracováním souborů mám na mysli kopírování, klonování disků, psaní zálohovacích aplikací pro sítě, ftp servery, ukládání vstupů do souborů a jejich pozdější přístup a tyto výstupy později pomocí potrubí přenášíme na něco jiného. Python je naproti tomu užitečnější pro práci s kousky dat, jako je čtení dat ze souboru a zpracování dat. Pokud budu konkrétnější, bash není ani programovací jazyk. Je to spíše jednoduchý shell, který byl zaměřen na práci se systémovými soubory pomocí příkazového řádku, aby byl proces rychlejší a rychlejší.

Pokud tedy dobře znáte programování bash shell, pak také víte, že proměnné a rozsahy v bash jsou extrémně omezené. Python je naopak spíše skriptovacím jazykem shellu než programovacím jazykem. Pokud pojmenujeme Bash jako programovací jazyk, je to spíš řečeno, že Python je objektově orientovaný programovací jazyk shellu. Člověk může jednat s pythonem objektově orientovaným způsobem, ale nikdy to nebude čistě objektově orientované jako C nebo Java. Podobně je Bash skriptovacím jazykem; lépe se používá jako něco, co je nutné k rychlému zpracování souborů, než k tomu, aby do nich psaly velké programy. Ačkoli Python je skriptovací jazyk prostředí, ve skutečnosti se zabývá v rámci svého vlastního prostředí. Například přesunutí veškerého souboru, který je na ploše, do jiného náhodného adresáře pomocí shellu Bash, by mělo něco podobného:

$ cd Desktop $ mv * randomDirectory

Ale na druhé straně je totéž v Pythonu trochu složitější. Vypadá to takto: -

import os, glob pro fname v glob.glob ('*'): os.rename (fname, 'randomdirectory')

Avšak v nejlepším případě se dá učinit nejkompaktnějším tímto způsobem: -

import os, glob (os.rename (fname, 'randomdirectory') pro fname v glob.glob ('*'))

Když se učíte jakýkoli jazyk, lidé vám často říkají, jak si čistit základy a všechny ty věci, ale neřeknou vám, jak se nejprve vypořádat se samotným systémem, který je nejdůležitější. Kromě toho jsou Python a Bash oba skriptovací jazyk Shell, což znamená, že oba jsou vyvinuty hlavně pro práci se systémem a jeho soubory.

Bash uvnitř Pythonu?

Ano, čtete to správně. Dosud jsme četli o tom, jak můžeme představit skripty Pythonu uvnitř Shell. Můžeme však také představit skripty Shell v skriptech pythonu. Vezměme si to například: - Zadejte „apt-get update“ do shellu python? Zjevně dostanete nějakou chybu, jako je neplatná syntaxe. Jde tedy o to, pokud chcete používat bash kódy jako 'ls, cd, mv' nebo cokoli jiného v Pythonu, budete muset importovat OS modul. Nyní udělejte jednu věc, zkopírujte následující kód a vložte jej do shellu pythonu a zkontrolujte, jak to funguje: -

$ python >>> ze systému os import * >>> ('sudo apt-get update')

A teď to funguje … yay. Toto je další způsob, jak spolupracovat python a bash skripty. Kromě toho existuje další python modul, který je speciálně vytvořen pro práci s bash. Tento modul je známý jako pexpect. Pexpect je python modul, který se používá pro vytváření podřízených procesů, jejich řízení a vracení výsledků podle požadavku podřízeného procesu. Modul pexpect má velmi snadné rozhraní pro import požadovaných modulů a podřízených procesů uvnitř a jejich odpovídající spuštění. Jeden potřebuje pouze nainstalovat pip do svého systému, aby mohl nainstalovat pexpect a jeden může nainstalovat modul následovně: -

$ pip install pexpect

Verze Pexpect potřebuje python verzi větší než 3, 3 nebo konkrétně 2, 7.

Ve skutečnosti je mnohem víc na smíchání pythonu a bash a nic nefunguje tak dobře jako směs skriptu Pythonu a Basha. Tato směs dělá skript rychle díky Bash a včetně pokročilých funkcí díky Pythonu. O pexpectu a jeho dokumentaci si můžete přečíst na https://pexpect.readthedocs.org/online.

Doporučené články

Zde je několik článků, které vám pomohou získat více podrobností o skriptování Bash a Pythonu, takže stačí projít odkaz.

  1. Python vs. JavaScript hodnotné rozdíly
  2. 25 nejčastějších otázek a odpovědí na rozhovor v Pythonu
  3. Python vs. JavaScript Rozdíly
  4. R Programování vs Python
  5. Zpracování souborů PHP

Kategorie: