89 votes

Les atouts de Shell Scripting par rapport à Python

J'ai essayé d'apprendre le shell(bash) script à quelques reprises, mais a été chassé par la syntaxe. Ensuite, j'ai trouvé Python et a été en mesure de faire la plupart des choses un script shell peut le faire en Python. Je suis pas sûr de savoir si je dois investir mon temps dans l'apprentissage de la création de scripts shell plus. Si je veux demander:

Quels sont les points forts de la création de scripts shell qui en font un outil indispensable par rapport à Python?

Je ne suis pas un système d'administration de profession, mais je suis intéressé à mettre en place des systèmes Linux pour les utilisateurs à la maison, donc je pense que l'apprentissage de la création de scripts shell peuvent devenir nécessaires.

78voto

Jonathan Leffler Points 299946
  • Les scripts Shell a plus simple notations pour les redirections d'entrées/sorties.
  • Il est plus simple de créer des pipelines de programmes existants dans le shell.
  • Les scripts Shell réutilise tous les programmes.
  • Shell est universellement disponible (sur quoi que ce soit comme Unix) - Python n'est pas forcément installé.

C'est vrai que vous pouvez tout faire en Python que vous pouvez le faire en shell; c'est vrai aussi qu'il y a des choses qui sont faciles en Python qui sont dur de la coquille (tout comme il y a des choses qui sont faciles à shell, mais dur en Python). Une connaissance des deux sera le meilleur dans le long terme.

54voto

S.Lott Points 207588

"Quels sont les points forts de la création de scripts shell qui en font un outil indispensable par rapport à Python?"

La coque n'est pas indispensable. Pourquoi pensez-vous qu'il y en a tellement? bash, tcsh, csh, sh, etc., etc.,

Python est un shell. Pas celui que vous souhaitez utiliser pour l'exécution de toutes les commandes, mais pour le script, c'est idéal.

Python est un plus-ou-moins une partie standard de toutes les distro Linux.

Le plus traditionnel des coquilles de faire trop de choses.

  1. Ils ont une pratique de l'interface utilisateur pour l'exécution des commandes. Cela inclut les commandes d'une ligne où le shell effectue des recherches sur votre CHEMIN, les fourches et les execs le programme demandé. Il comprend également des pipelines, des séquences et simultanée des programmes (à l'aide d' ;, | et &) ainsi que certains de redirection (à l'aide d' > et <).

  2. Ils ont un minable peu de programmation de langue-comme la capacité pour l'exécution de scripts. Ce langage est un peu dur à utiliser et extrêmement inefficace. La plupart des états dans cette langue, ont besoin de bifurquer un ou de plusieurs des processus supplémentaires, de perdre du temps et de la mémoire.

Programmes en cours d'exécution à partir du shell, de rediriger stderr dans un fichier journal et ce genre de chose est bonne. Faire que dans la coquille.

Presque tout le reste peut être fait de manière plus efficace et de plus en plus clairement comme un script Python.

Vous avez besoin des deux. Cependant, vous ne devriez jamais écrire un script avec si-états ou des boucles dans un cadre traditionnel de la coquille de la langue.

13voto

elzapp Points 831

Il n'y a rien que vous pouvez faire avec des scripts shell que vous ne pouvez pas faire avec python. Le gros avantage de scripts shell, c'est que vous utilisez les mêmes commandes que vous faites lorsque vous utilisez le shell, donc si vous êtes un lourd shell de l'utilisateur, les scripts shell à un certain point de devenir une façon très rapide et facile à automatiser votre shell.

Je trouve aussi qu'il est plus facile de traiter avec des tuyaux de données dans des scripts shell qu'en python, mais il est tout à fait faisable à partir de python.

Et, enfin, vous n'avez pas à feu un interprète pour exécuter les scripts shell, vous donnant une très petite, mais parfois, peut-être notable de la vitesse et de l'utilisation de la mémoire avantage.

Mais là encore, les scripts Python sont beaucoup plus facile à gérer, je suis en train de migrer de gros laid des scripts shell pour les scripts Python pour cette raison. Il est aussi plus facile de faire la gestion des exceptions et l'assurance qualité avec Python.

8voto

heltonbiker Points 4725

Je suis d'accord avec la plupart des réponses précédentes. Je considère commandes du shell la plus adaptée pour faire du système de fichiers des tâches orientées (copier et déplacer des fichiers, grep, etc). Shell est mieux, à mon avis, si vous avez à lire et à écrire dans un fichier, depuis un seul >>file.txt redirection est ajouté à un fichier instantanément, au lieu de devoir, dire, file=open('file.txt','a'); file.write(), etc.

Actuellement, pour mon usage personnel, je mélange les deux, la création d'un script python et en appelant les os.système('commande') ou de l'os.popen('commande') à chaque fois qu'une action est plus facile dans la coquille qu'en python.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X