
Brian Curtis
0
2213
587
Si vous écrivez souvent du HTML dans un éditeur et que vous le collez ensuite dans WordPress, vous remarquerez que des balises de formatage gênantes sont parfois ajoutées (comme des balises). En utilisant de simples scripts shell, vous pouvez nettoyer automatiquement cette mise en forme HTML avec quelques commandes simples..
Pourquoi utiliser des scripts shell? Si vous débutez dans la programmation, il est préférable de commencer petit. Non seulement vous êtes moins enclin à abandonner, mais vous aurez également la possibilité de vous arrêter et d'apprendre en cours de route. Cela dit, vos premiers programmes peuvent être très utiles même s’ils sont aussi très simples..
Script de shell Qu'est-ce qu'un script de shell et pourquoi vous devez l'utiliser? Qu'est-ce qu'un script de shell et pourquoi devez-vous l'utiliser? En plus d'accepter et d'exécuter des commandes de manière interactive, le shell peut également exécuter des commandes stockées dans un fichier. Ceci est connu sous le nom de script shell. Ici, nous couvrons les bases du script shell. C’est un bon endroit pour commencer à coder pour cette raison précise: il est facile de rassembler quelque chose dans quelques lignes de code qui vous fera gagner beaucoup de temps. Jetons un coup d'oeil à quelques recettes, ou “les patrons,” vous pouvez vous réutiliser dans vos propres scripts.
Pourquoi Shell Scripting?
Tout d’abord, commençons par définir “scripts shell” en tant que scripts d’écriture à exécuter dans le shell Bash. Techniquement, d’autres langages de script tels que Powershell pourraient également être qualifiés de “scripts shell.” Mais pourquoi se concentrer sur les scripts shell en général, et les scripts Bash en particulier, en premier lieu?
- Avec l'introduction du sous-système Windows pour Linux, le shell Bash est désormais compatible avec toutes les principales plates-formes PC. Guide rapide de Linux Bash Shell sous Windows 10 Guide rapide de Linux Bash Shell sous Windows 10 Vous pouvez désormais exécuter Linux sous Windows. En savoir plus sur Bash sous Windows, en expliquant comment et pourquoi vous devez l’installer, en passant par des fonctionnalités cachées que vous ne connaissiez probablement pas. . (Il est également inclus dans macOS et pratiquement toutes les distributions Linux par défaut.) Il est même disponible sur les téléphones Android équipés d'un Termux. Comment utiliser la ligne de commande Linux sur Android avec Termux Comment utiliser la ligne de commande Linux sur Android avec Termux Remplacez des tonnes d'applications Android volumineuses par une seule application de ligne de commande Linux. , un téléchargement gratuit et open source de Google Play.
- Les scripts Shell vous permettent de vous concentrer sur les bases de la programmation, car ce sont les commandes que vous incluez qui vous soulèveront le plus. Supposons que vous vouliez compresser certains fichiers dans une application de bureau traditionnelle écrite en C. Vous devrez soit écrire un petit code pour utiliser une bibliothèque logicielle compatible. Une taille ne convient pas à tous: Pourquoi le logiciel n'est-il pas universellement compatible? Une taille unique Pourquoi tout logiciel? Le logiciel universellement compatible n'est-il pas le même sur tous les systèmes d'exploitation, n'est-ce pas? Faux. Cela peut sembler identique et fonctionner de la même manière, mais c'est différent dans les coulisses. qui fera le travail, ou écrire beaucoup de code à partir de zéro pour réellement faire la compression. Dans un script shell, tout ce que vous avez à faire est d’exécuter le le goudron commande sur les fichiers souhaités.
- Vous pouvez développer par petites étapes, de manière interactive. Pour continuer l’exemple ci-dessus, supposons que vous utilisiez le goudron faire votre compression, mais vous ne savez pas encore laquelle de ses options vous voulez. Il suffit de jouer avec à l'invite jusqu'à ce que vous obteniez le résultat souhaité, puis copiez / collez la commande que vous avez utilisée dans votre script.
Compte tenu de ce qui précède, voici quelques idées de scripts shell utiles que vous pouvez assembler avec quelques lignes de code. Nous allons créer deux scripts pour améliorer les capacités déjà considérables de l'utilitaire de conversion Pandoc. Procédure de conversion simple entre formats de document sous Linux Procédure de conversion simple entre formats de document sous Linux Le passage à Linux peut entraîner des problèmes de compatibilité des fichiers. Par exemple, les documents ne se ressemblent pas dans LibreOffice et dans Word. Ceci est juste une des raisons pour lesquelles vous avez besoin de pandoc. .
1. Collecte de longues listes de paramètres
Le moyen le plus simple et le plus simple d'utiliser un script shell est de créer un raccourci pour une commande existante. Certains programmes en ligne de commande ont une tonne d'indicateurs et leur syntaxe n'est pas toujours claire. Mais vous pouvez utiliser l'une de ces commandes avec toutes ses options compliquées et les insérer dans un script shell avec un nom plus facile à saisir. Considérez la commande suivante, qui exécute le Pandoc sur un fichier Markdown et crée un fichier ODT à l'aide d'un fichier de modèle:
pandoc -r markdown -w odt --reference-odt = / chemin / vers / dossier / contenant / mscript-template.odt -o manuscript.odt manuscript.md
J'utilise Pandoc au quotidien, car je rédige tout dans un balisage léger, comme Markdown Qu'est-ce que Markdown? 4 raisons pour lesquelles vous devriez apprendre maintenant Qu'est-ce que Markdown? 4 raisons pour lesquelles vous devriez apprendre maintenant Fatigué des éditeurs HTML et WYSIWYG? Alors Markdown est la solution pour vous, peu importe qui vous êtes. et Asciidoc Lightweight Markup Languages: Pourquoi utiliser AsciiDoc plutôt que Markdown Langages Lightweight Markup: Pourquoi utiliser AsciiDoc plutôt que Markdown Le langage de Markdown est proposé dans de nombreuses versions, dont certaines sont meilleures que d’autres. Les langages légers comme AsciiDoc sont faciles à apprendre et extrêmement utiles. Voici comment cela se compare. . Et pourtant, lors de la conversion en ODT, je tape “odt-reference” au lieu de “référence-odt.” Chaque. Unique. Temps. De plus, le chemin d'accès au modèle ne se complétera pas automatiquement comme la plupart des commandes shell. Créer un script simple peut sauver tout ce qui est mal typé:
#! / bin / bash pandoc -r docbook -w odt --reference-odt = / chemin / vers / dossier / contenant / mscript-template.odt -o $ 1.odt $ 1
La première ligne du script demande au système d'utiliser le shell Bash pour l'exécuter. Le suivant prend le premier argument sur la ligne de commande (1 $) et exécute Pandoc avec un ensemble de drapeaux. Il est intéressant de noter qu’il existe d’autres moyens de le faire, comme utiliser le alias commande sur les systèmes Unix-ish. Mais créer de petits scripts shell signifie que vous pouvez les garder à portée de main (comme dans votre dossier ~ / bin), les copier rapidement (ou les synchroniser) ailleurs et les modifier avec n’importe quel éditeur de texte. Enregistrez votre script avec un nom de fichier facile à retenir et à saisir (par exemple,. “markdown2odt.sh”) N'oubliez pas de lui donner des autorisations exécutables. L'un des outils les plus importants sous Linux - Comprendre Chmod L'un des outils les plus importants sous Linux - Comprendre Chmod Il existe de nombreuses fonctionnalités qui rendent Linux spécial, mais l'une d'entre elles le rend aussi sécurisé. est son système de permissions. Vous pouvez avoir un contrôle précis sur tous les fichiers de votre système et… .
2. Piping Output pour nettoyer le formatage HTML
Connecter deux commandes de terminal avec un tuyau (“|”) provoque l’utilisation de la sortie du premier comme entrée du second. (Si vous ne l'avez jamais vu auparavant, consultez notre guide rapide de la ligne de commande. Un guide rapide pour démarrer avec la ligne de commande Linux. Un guide rapide pour démarrer avec la ligne de commande Linux. Vous pouvez faire beaucoup de choses étonnantes avec des commandes sous Linux et ce n’est vraiment pas difficile à apprendre.) Mais devoir taper deux Les commandes dans le bon ordre, avec les bons paramètres, ne font que compliquer le problème que nous venons de traiter. Envelopper cette double commande dans un script shell rend cela beaucoup plus pratique.
Un truc que j'utilise avec Pandoc est de “nettoyer” Formatage HTML ou suppression de tout style en ligne 9 Erreurs que vous ne devriez pas commettre lors de la création d'une page Web 9 Erreurs que vous ne devriez pas commettre lors de la construction d'une page Web Ces erreurs de codage HTML suivantes sont faciles à faire, mais si vous les évitez plus tôt plus tard, votre page paraîtra mieux, sera plus facile à gérer et fonctionnera comme vous le souhaitez. . Si vous avez déjà essayé d'exporter un document de traitement de texte au format HTML, vous constaterez qu'il existe une tonne de styles (envergure balises) qui sont ajoutées dans et entre le texte.
Le format XML du Docbook n'a pas de convention pour les styles en ligne, donc si nous convertissons du HTML en DocBook, toute cette mise en forme est rejetée. Ensuite, nous pouvons utiliser Pandoc pour convertir le DocBook retour en HTML, et nous obtenons un bon balisage que vous pouvez (par exemple) coller dans WordPress. Plutôt que de faire cela avec des appels individuels à Pandoc, le script suivant les enchaîne pour:
- Convertir le fichier HTML exporté en DocBook, qui ne contient pas de styles en ligne (avant le tube)
- Reconvertissez le DocBook en ce qui est maintenant bien, un formatage HTML propre (après le tuyau)
#! / bin / bash pandoc -w docbook $ 1 | pandoc -r docbook -w html -o $ 1 -
Expliquer les entrées / sorties standard
Ce qui précède tire parti des concepts terminaux de “entrée standard” et “sortie standard.” Si vous deviez exécuter la première partie de la commande, vous obtiendriez tout un tas de XML dans le terminal. La raison en est que nous n’avons donné à Pandoc aucune autre sortie (telle qu’un fichier) à utiliser. Donc, il utilise la seule solution de repli dont il dispose: une sortie standard, dans ce cas le terminal.
D'autre part, le tiret à la fin de la deuxième commande Pandoc signifie qu'il doit utiliser “entrée standard.” Exécuté seul, vous serez accueilli par une invite, dans laquelle le shell attendra que vous fournissiez du texte via son entrée par défaut, en tapant sur le clavier. Lorsque nous les combinons, vous pouvez presque imaginer que la première commande crache un paquet de XML vers le terminal où il est immédiatement redirigé vers la deuxième commande en tant qu'entrée..
Le résultat est, si vous le renommez en “clean-html.sh,” vous pouvez l'exécuter sur n'importe quel fichier HTML pour vous débarrasser de ces styles gênants. La meilleure partie est que Pandoc lira le fichier, puis l’écrasera à la fin, ce qui signifie qu’il n’ya pas de fichiers temporaires.
3. Exécution de programmes sur plusieurs fichiers HTML
Certains programmes vous permettent de spécifier joker comme l'astérisque sur la ligne de commande. Cela vous permet, par exemple, de déplacer toutes les images JPG vers votre “Des photos” dossier:
mv * .jpg ~ / Images
Mais d'autres programmes ne prennent qu'un fichier à la fois en entrée, et Pandoc en est un. Alors que se passe-t-il lorsque nous avons un répertoire complet de fichiers HTML exportés et que nous voulons nettoyer le formatage HTML? Avons-nous besoin de courir notre “clean-html.sh” script sur chacun d'eux manuellement?
Non, parce que nous ne sommes pas des débutants. Nous pouvons envelopper notre commande canalisée dans un “pour chaque” boucle. Cela ira à chaque fichier HTML dans le répertoire en cours et effectuera l'opération de nettoyage dessus. Ajoutons également un petit message via le écho déclaration pour nous faire savoir que tous les fichiers ont été traités:
pour le nom du fichier dans ./*.html do pandoc -w docbook $ 1 | pandoc -r docbook -w html -o $ 1 - echo "Travailler sur $ 1… HTML est propre!" terminé
Maintenant, si vous avez un dossier plein de “sale” HTML, vous pouvez exécuter ce script dessus et obtenir une mise en forme HTML éclatante.
Où aller en partant d'ici
Si vous aimez bricoler, vous allez adorer les scripts shell, car il y a toujours des réglages à faire. Quelques idées sur la façon d'utiliser ces modèles comme base pour d'autres scripts sont les suivantes:
- Ajout de la prise en charge de la conversion directement à partir du fichier de traitement de texte, car Pandoc prend en charge les entrées ODT et DOCX (par exemple, la chaîne devient ODT / DOCX> DocBook XML> HTML).
- La combinaison des deux nettoyeurs HTML en un seul, de sorte que si un fichier est fourni, il le nettoie, sinon, il nettoie automatiquement tout le contenu du répertoire en cours (ajoute le traitement des arguments de ligne de commande. Guide de démarrage rapide de la ligne de commande Linux Guide de démarrage rapide Commencé avec la ligne de commande Linux Vous pouvez faire beaucoup de choses étonnantes avec des commandes sous Linux et ce n’est vraiment pas difficile à apprendre.).
- Fournit à l'utilisateur des options d'exportation supplémentaires telles que PDF (ajoute des choix en fonction des entrées, via des instructions if-then ou case).
Comme vous pouvez le constater, avec les scripts shell, vous pouvez créer des objets un par un, les tester à l’invite et les insérer dans vos scripts au fur et à mesure..
Que dites-vous, les scripts shell semblent-ils un peu moins intimidants maintenant? Êtes-vous prêt à vous essayer à automatiser vos tâches les plus ennuyeuses? Si vous décidez d'intervenir, dites-nous comment ça se passe ci-dessous dans les commentaires.!