Déplacez-vous sur Shell-Scripts Sh.py est ici, et c'est génial.

Déplacez-vous sur Shell-Scripts Sh.py est ici, et c'est génial. / Linux

Je parie que vous ne saviez pas que vous pourriez écrire des scripts shell en Python.

Pour tout programmeur ou administrateur système, les scripts shell sont une compétence essentielle à maîtriser. Il vous permet d'automatiser des tâches fastidieuses, en les transformant en actions cohérentes et reproductibles. Le problème est que cela peut être un peu intimidant, surtout si l’on considère que la plupart des dialectes utilisant des scripts shell n’ont pas la finesse syntaxique trouvée dans les goûts de Python et Ruby..

Je serai même blunter. La plupart des scripts sont plus laids que le carlin.

En outre, il existe toute une gamme de shells disponibles pour les plates-formes de type UNIX, notamment Bash, CSH, KSH et (mon préféré) FISH. En conséquence, l'écriture de scripts shell cohérents qui fonctionnent sur chaque plate-forme peut être difficile.

Il doit y avoir un meilleur moyen, à droite?

Présentation de sh.py

Il y a. Lorsque je n'écris pas pour MakeUseOf, j'écris du code en Python pour le plaisir et pour le profit. J'aime beaucoup Python pour sa flexibilité, sa beauté intrinsèque et la façon dont il exige l'écriture de code correct par la conception. Si cela vous convient, mais que vous ne connaissez pas encore ce langage génial, pourquoi ne pas consulter ces cinq sites Web formidables pour apprendre la programmation Python? Les 5 meilleurs sites Web pour apprendre la programmation Python Les 5 meilleurs sites Web pour apprendre la programmation Python Vous voulez apprendre la programmation Python? Voici les meilleurs moyens d'apprendre Python en ligne, dont beaucoup sont entièrement gratuits. Lire la suite ?

Il y a quelques mois, je suis tombé sur cette bibliothèque vraiment impressionnante appelée sh.py, qui vous permet d'appeler des programmes, de transmettre des paramètres et de gérer les sorties, le tout dans les limites d'un programme Python..

Qu'est-ce que cela signifie? En termes simples, cela signifie que vous disposez de toutes les fonctionnalités des scripts shell, mais que dans un langage facile à lire, il est de nature modulaire et prend en charge la programmation orientée objet. Cool, droit?

Alors, comment on l'utilise?

Je fais quelques hypothèses sur vous. La première est que vous utilisez Linux, OS X ou FreeBSD. Dans l'état actuel des choses, sh.py ne fonctionne pas sous Windows. Toutefois, si nécessaire, vous pouvez toujours installer une machine virtuelle Linux. Mon collègue Justin Pot a écrit un article très utile à ce sujet, que vous pouvez consulter ici. Comment utiliser les images gratuites VirtualBoxes pour tester et exécuter des systèmes d'exploitation open source [Linux] Comment utiliser des images gratuites VirtualBoxes pour tester et exécuter des systèmes d'exploitation open source [Linux] Essayez rapidement une grande variété de systèmes d’exploitation open source, certains que vous connaissez bien et d’autres que vous ne connaissez pas. Vous pouvez commencer à naviguer maintenant sur Virtualboxes, un site Web qui prend presque tout le travail à exécution… Lire la suite .

La deuxième hypothèse que je fais est que vous exécutez une version récente de Python (2.7 ou 3.2) et que vous avez le gestionnaire de packages PIP installé. Si ce n'est pas le cas, consultez la documentation officielle de Python.

Tout bon? Ensuite nous continuerons.

Commençons à coder

Dans un terminal, installez sh.py avec la commande suivante.

sudo pip installer sh

La raison pour laquelle nous utilisons 'sudo' ici est parce que nous devons élever nos autorisations pour ajouter de nouveaux paquets Python. Si sh.py s’installe correctement, les lignes suivantes apparaissent dans votre terminal..

Téléchargement / décompression sh Téléchargement de sh-1.09.tar.gz Exécution de setup.py egg_info pour le package sh Installation des packages collectés: sh Exécution de setup.py install pour sh Installation réussie sh Nettoyage en cours… 

Sinon, les chances sont bonnes que votre installation ait échoué. Triste. Si tel est le cas, vérifiez vos autorisations et vérifiez que vous avez bien installé PIP. Si ce n'est toujours pas là, essayez de demander sur Stack Overflow (ce qui a déjà été discuté. 10 sites Web qui peuvent aider le programmeur débutant avec des extraits de code. 10 sites Web qui peuvent aider le programmeur débutant avec des extraits de code. En savoir plus. ) ou Réponses MakeUseOf.

Maintenant que c'est trié, créez un nouveau répertoire. C'est ici que nous allons placer tout notre code. Ouvrez un éditeur de texte et créez un fichier appelé «shtest.py». Ici, nous allons simplement créer un nouveau fichier, puis lister le contenu du répertoire dans lequel nous nous trouvons.?

Dans shtest.py, ajoutez les lignes suivantes.

#! / usr / bin / env import sh python
sh.touch ('bonjour') print (sh.ls ('- l'))

Des choses simples ici. Décomposons cela.

#! / usr / bin / env python

Cette ligne s'appelle le hash-bang et demande à votre shell d'ouvrir ce fichier en tant que programme Python. Cela vous permet de l'ouvrir comme vous le feriez avec un script shell (./shtest.py), au lieu de l'ouvrir directement avec Python (python shtest.py). Cool, droit?

importation sh

Cette ligne importe la bibliothèque sh que nous avons installée il y a quelques instants. Nous ne pouvons pas continuer sans cela, alors assurez-vous qu'il soit dans votre code!

sh.touch ('bonjour')

Vous connaissez peut-être la commande Linux 'touch'. Cela crée un fichier vide avec le nom de fichier que vous spécifiez. Ici, nous appelons directement 'touch' depuis Python. Comme vous pouvez le constater, nous avons préfacé ceci par «sh.» Et nous lui transmettons un paramètre de «bonjour»..

print (sh.ls ('- l'))

Vous connaissez peut-être la commande 'print', qui envoie du texte à la console. Ici, nous passons le paramètre 'sh.ls'. Ceci appelle le programme Linux ls, qui répertorie le contenu d'un répertoire. Nous transmettons également un paramètre de '-l', qui affiche des informations plus détaillées sur le contenu du répertoire que nous exécutons dans.

Est-ce que ça marche? Voir par vous-même.

Ceux d'entre vous avec des yeux de faucon remarqueront qu'il y a un autre fichier qui flotte dans ce répertoire et qui s'appelle 'gitsh.py'. Que pourrait-il y avoir??

Sous Commandes

sh.py possède des points d'ancrage pour les programmes populaires déjà intégrés. Ceux-ci incluent git, sudo et un grand nombre d'utilitaires Linux. Celles-ci facilitent encore plus l'interaction avec ces services depuis Python.

Comme c'est facile? Eh bien, je vais vous montrer comment initialiser un référentiel Git vide en seulement trois lignes de code. Commencez par créer un fichier appelé 'gitsh.py' et ouvrez-le dans votre éditeur de texte préféré..

À l'intérieur, écrivez les trois lignes suivantes.

 #! / usr / bin / env python de sh import git print (git.init ())

La plupart de ceci devrait vous être assez familier. Vous remarquerez que nous avons importé "git" de "sh". Cela signifie simplement que nous avons importé une fonctionnalité spécifique d'un module, tout en ignorant tout le reste.

Après cela, nous initialisons notre dépôt.

print (git.init ())

Nous avons parlé de l'impression. Vous devriez remarquer que nous appelons 'git' sans que '.sh' le poursuive. En effet, nous avons spécifiquement importé la fonctionnalité git de la bibliothèque 'sh'.

Et c'est à peu près tout. Lorsque nous exécutons gitsh.py, nous devrions voir les lignes suivantes apparaître dans votre terminal.

Conclusion

C'était une introduction assez facile à sh.py. Si vous souhaitez en savoir plus à ce sujet, consultez la documentation officielle ici. Cependant, si vous êtes bloqué, n'hésitez pas à me laisser un commentaire ci-dessous et je vais essayer de vous aider.

En savoir plus sur: Programmation, Python, Terminal.