
Peter Holmes
0
1993
115
Pokud často píšete HTML v editoru a potom vkládáte do WordPress, všimnete si, že někdy jsou přidány nepříjemné formátovací značky (jako jsou tagy). Pomocí jednoduchých skriptů prostředí můžete automaticky vyčistit formátování odpadkového HTML několika jednoduchými příkazy.
Proč používat skriptování prostředí? Pokud jste novým v programování, je mnohem lepší začít s malými. Nejen, že se méně pravděpodobně vzdáte, ale budete mít příležitost se zastavit a učit se po cestě. To znamená, že vaše první programy mohou být opravdu užitečné, i když jsou také opravdu jednoduché.
Shell skriptování Co je Shell skriptování a proč byste měli používat Co je Shell skriptování a proč byste měli používat Kromě schopnosti interaktivně přijímat a provádět příkazy, může shell také provádět příkazy uložené v souboru. Toto je známé jako skriptování prostředí. Zde se věnujeme základům skriptování prostředí. je skvělé místo pro zahájení kódování z tohoto přesného důvodu: je snadné dát dohromady něco do několika řádků kódu, které vám ušetří spoustu času. Pojďme se podívat na několik receptů, nebo “vzory,” můžete použít na vlastní skripty.
Proč Shell Scripting?
Nejprve začněme definováním “shell skriptování” jako psaní skriptů, které se mají spouštět v shellu Bash. Technicky řečeno, jiné skriptovací jazyky, jako je Powershell, by také mohly být označeny “shell skriptování.” Ale proč se zaměřit především na skriptování shellu a především na skriptování Bash?
- Se zavedením subsystému Windows pro Linux je nyní Bash shell kompatibilní se všemi hlavními PC platformami. Stručný průvodce pro Linux Bash Shell ve Windows 10 Stručný průvodce pro Linux Bash Shell ve Windows 10 Nyní můžete spustit Linux na Windows. Další informace o systému Bash ve Windows, o tom, jak a proč byste jej měli nainstalovat, až po skryté funkce, o kterých jste pravděpodobně nevěděli. . (Je také součástí MacOSu a téměř všech distribucí Linuxu po vybalení.) Je dokonce k dispozici na telefonech Android s Termuxem Jak používat příkazový řádek Linux v systému Android s Termuxem Jak používat příkazový řádek Linux v systému Android s Termuxem Nahraďte tuny objemných aplikací pro Android pouhou tenkou aplikací pro Linux na příkazovém řádku. , bezplatné a otevřené stahování ze služby Google Play.
- Skriptování prostředí vám umožňuje soustředit se na základy programování, protože nejtěžší zvedání se provádí pomocí příkazů, které zahrnete. Předpokládejme, že chcete komprimovat některé soubory v tradiční stolní aplikaci napsané v jazyce C. Budete muset napsat malý kód, abyste mohli používat kompatibilní softwarovou knihovnu Jedna velikost neodpovídá všem: Proč software není univerzálně kompatibilní Jedna velikost není 'Fit Fit All: Proč Software není univerzálně kompatibilní Software je stejný na jakémkoli operačním systému, že? Špatně. Může to vypadat stejně a fungovat podobně, ale v zákulisí je to jiné. to bude dělat práci, nebo psát mnoho kód od nuly, aby skutečně provést kompresi. Ve shellovém skriptu stačí jen spustit dehet příkaz na požadované soubory.
- Můžete se vyvíjet malými kroky interaktivním způsobem. Chcete-li pokračovat ve výše uvedeném příkladu, řekněme, že jste se rozhodli použít dehet provést kompresi, ale ještě si nejste jisti, kterou z jejích možností chcete. Stačí si s tím hrát na výzvu, dokud nedosáhnete požadovaného výsledku, a pak zkopírujte / vložte příkaz, který jste použili, do skriptu.
S ohledem na výše uvedené je zde několik nápadů pro užitečné shellové skripty, které můžete dát dohromady s několika řádky kódu. Budeme stavět několik skriptů, abychom posílili již značné pravomoci obslužného programu pro převod Pandoc Jak snadno převádět mezi formáty dokumentů v Linuxu Jak snadno převádět mezi formáty dokumentů v Linuxu Přepínání na Linux může vést k problémům s kompatibilitou souborů. Například dokumenty v LibreOffice nevypadají stejně jako v aplikaci Word. To je jen jeden z důvodů, proč potřebujete pandoc. .
1. Shromažďování dlouhých seznamů parametrů
Nejjednodušší a nejjednodušší způsob použití shellového skriptu je jako zkratka knd pro existující příkaz. Některé programy příkazového řádku mají spoustu příznaků a jejich syntaxe není vždy jasná. Můžete však vzít jeden z těchto příkazů se všemi jeho komplikovanými možnostmi a hodit je do shellového skriptu se jménem, které se snadněji zadává. Zvažte následující příkaz, který spustí soubor Pandoc v souboru Markdown a vytvoří soubor ODT pomocí souboru šablony:
pandoc -r markdown -w odt --reference-odt = / cesta / do / složka / obsahující / mscript-template.odt -o rukopis.odt rukopis.md
Používám Pandoc každý den, protože jsem autorem všeho, co se týče lehkých značek, jako je Markdown. Co je Markdown? 4 důvody, proč byste se měli nyní učit Co je Markdown? 4 důvody, proč byste se měli nyní učit Už vás nebaví editory HTML a WYSIWYG? Pak je Markdown pro vás odpovědí bez ohledu na to, kdo jste. a Asciidoc lehké značkovací jazyky: To je důvod, proč byste měli používat AsciiDoc přes pravidelné Markdown Lehké značkovací jazyky: To je důvod, proč byste měli používat AsciiDoc přes pravidelné Markdown Markdown jazyk přichází v mnoha příchutích, z nichž některé jsou lepší než jiné. Lehké jazyky jako AsciiDoc se snadno učí a jsou velmi užitečné. Tady je, jak to porovnává. . A přesto při převodu na ODT píšu “odt-reference” namísto “reference-odt.” Každý. Singl. Čas. Cesta k šabloně navíc nebude automaticky dokončena jako většina příkazů shellu. Vytvoření jednoduchého skriptu může zachránit všechny ty nesprávné texty:
#! / bin / bash pandoc -r docbook -w odt --reference-odt = / cesta / do / složka / obsahující / mscript-template.odt -o $ 1.odt $ 1
První řádek skriptu nasměruje systém, aby k jeho spuštění použil prostředí Bash. Další vezme první argument na příkazovém řádku ($ 1) a spustí Pandoc se sadou příznaků. Stojí za zmínku, že existují jiné způsoby, jak to udělat, například pomocí alias příkaz v systémech Unix-ish. Ale vytváření malých skriptů skriptů znamená, že je můžete mít po ruce (například ve složce ~ / bin), rychle je zkopírovat (nebo synchronizovat) jinde a změnit je pomocí libovolného textového editoru. Uložte skript s názvem souboru, který lze snadno zapamatovat a napsat (např. “markdown2odt.sh”). Nezapomeňte mu udělit spustitelná oprávnění Jeden z nejdůležitějších nástrojů v systému Linux - Porozumění systému Chmod Jeden z nejdůležitějších nástrojů v systému Linux - Porozumění systému Chmod Existuje spousta funkcí, díky kterým je Linux speciální, ale jeden z nich je tak bezpečný je jeho systém oprávnění. Můžete mít jemnou kontrolu nad všemi soubory ve vašem systému a ... .
2. Potrubní výstup pro čisté formátování HTML
Spojení dvou příkazů terminálu pomocí potrubí (“|”) způsobí, že výstup prvního bude použit jako vstup druhého. (Pokud jste to ještě nikdy neviděli, podívejte se na našeho rychlého průvodce příkazovým řádkem. Rychlý průvodce, jak začít s příkazovým řádkem Linuxu Rychlý průvodce, jak začít s příkazovým řádkem Linuxu Můžete dělat spoustu úžasných věcí pomocí příkazů v Linuxu a opravdu to není těžké se naučit.) Ale museli psát dva příkazy ve správném pořadí a se správnými parametry pouze umocňují problém, který jsme právě probrali. Zabalení tohoto dvojitého příkazu do shellového skriptu je mnohem pohodlnější.
Jeden trik, který používám s Pandocem, je “čistý” Formátování HTML nebo odebrání veškerého inline stylu 9 Chyby, které byste při vytváření webové stránky neměli dělat 9 Chyby, které byste neměli dělat při vytváření webové stránky Tyto následující chyby kódování HTML lze snadno provést, ale pokud je spíše ukončíte, než později bude vaše stránka vypadat lépe, snáze se bude udržovat a bude fungovat tak, jak chcete. . Pokud jste se někdy pokusili exportovat textový procesor do HTML, můžete vidět, že existuje spousta stylů (rozpětí tagy), které se přidají do textu a mezi text.
Formát XML Docbook nemá konvenci pro vložené styly, takže pokud převedeme HTML na DocBook, bude toto formátování vyhozeno. Pak můžeme použít Pandoc k převodu DocBook zadní do HTML a dostaneme pěkné označení, které můžete (například) vložit do WordPressu. Spíše než v případě individuálních volání na Pandoc je následující skript spojuje dohromady:
- Převést exportovaný soubor HTML na DocBook, který nemá žádné vložené styly (před trubkou)
- Převeďte DocBook zpět na to, co je nyní pěkné, čisté formátování HTML (po kanálu)
#! / bin / bash pandoc -w docbook $ 1 | pandoc -r docbook -w html -o $ 1 -
Vysvětlení standardního vstupu / výstupu
Výše uvedené využívá terminálové koncepce “standardní vstup” a “standardní výstup.” Pokud byste měli spustit první část příkazu, v terminálu by se zobrazila celá hromada XML. Důvod, proč jsme nedali Pandoc žádné další výstupy (například soubor) k použití. Používá se tedy pouze jediná zpětná vazba: standardní výstup, v tomto případě terminál.
Na druhou stranu znak pomlčky na konci druhého příkazu Pandoc znamená, že by měl použít “standardní vstup.” Běh sám, budete vítáni s výzvou, kde shell by čekat na vás poskytnout nějaký text prostřednictvím jeho výchozí vstup, zadáním na klávesnici. Když je zkombinujeme, můžete si téměř představit, že první příkaz vyplivl spoustu XML na terminál, kde je okamžitě vložen do druhého příkazu jako vstup.
Výsledkem je, pokud jej přejmenujete “clean-html.sh,” můžete jej spustit na jakémkoli souboru HTML, abyste se zbavili těchto obtěžujících stylů. Nejlepší část je, že Pandoc bude číst ze souboru, pak jej přepíše na konci, což znamená, že v něm nejsou žádné dočasné soubory..
3. Spouštění programů na více souborech HTML
Některé programy umožňují určit zástupné znaky například hvězdička na příkazovém řádku. To vám umožní například přesunout všechny obrázky JPG do vašeho “Obrázky” složka:
mv * .jpg ~ / Obrázky
Ale jiné programy berou jako vstup vždy pouze jeden soubor a Pandoc je jedním z nich. Co se tedy stane, když máme celý adresář plný exportovaných souborů HTML a chceme vyčistit formátování HTML? Potřebujeme spustit náš “clean-html.sh” skript na každém z nich ručně?
Ne, protože nejsme nováčci. Můžeme zabalit náš potrubní příkaz do “pro každého” smyčka. Tím se postupně přepne na každý soubor HTML v aktuálním adresáři a provede se v něm čistá operace. Pojďme také přidat malou zprávu přes echo prohlášení, které nám dá vědět, že všechny soubory byly ošetřeny:
pro název souboru v ./*.html do pandoc -w docbook $ 1 | pandoc -r docbook -w html -o $ 1 - echo "Práce na $ 1 ... HTML je čisté!" Hotovo
Nyní, pokud máte složku plnou “špinavý” HTML, můžete na něm spustit tento skript a skončit s nějakým jiskřivě čistým formátováním HTML.
Kam dál?
Pokud máte rádi zdrsňování, budete milovat skriptování prostředí, protože je vždy třeba vyladit. Některé nápady, jak tyto vzory použít jako základ pro jiné skripty, zahrnují následující:
- Přidání podpory pro převod přímo ze souboru textového procesoru, protože Pandoc podporuje vstup ODT a DOCX (tj. Řetězec se stává ODT / DOCX> DocBook XML> HTML).
- Kombinace obou čističů HTML do jednoho tak, že pokud je poskytnut soubor, vyčistí to, jinak automaticky vyčistí vše v aktuálním adresáři (přidává řešení s argumenty příkazového řádku. Stručný průvodce, jak začít s příkazovým řádkem Linux, Rychlý průvodce, jak získat Začínáme s příkazovým řádkem Linuxu Můžete udělat spoustu úžasných věcí pomocí příkazů v systému Linux a opravdu není těžké se je naučit.).
- Poskytněte uživateli další možnosti exportu, jako je PDF (přidává volby na základě vstupu, prostřednictvím příkazů if-then nebo case).
Jak vidíte, s shellovými skripty můžete věci stavět trochu najednou, okamžitě je otestovat a za běhu je zařadit do svých skriptů.
Co říkáte, zdá se nyní skriptování prostředí trochu méně zastrašující? Jste připraveni vyzkoušet si automatizaci svých nejednotnějších úkolů? Pokud se rozhodnete skočit, dejte nám vědět, jak to jde níže v komentářích!