python αντι bash

...συζητήσεις περί τεχνολογίας για hardware, software, υπηρεσίες, κλπ (για ubuntu ... στο Γενικά)

Συντονιστές: Geochr, ubuderix

python αντι bash

Δημοσίευσηαπό Fedil » 14 Ιούλ 2014, 22:45

Δεν τα πάω καλά καθόλου με το bash. Ωστόσο έχω πιάσει τον εαυτό μου να κάνω δουλειές που αν ήξερα scripting σε bash θα είχα κερδίσει χρόνο σε ζωή...
Σκέφτομαι μιας και δεν καταλαβαίνω καλά bash, να δοκιμάσω python. Με την python μπορεί κανεις να δίνει εντολές στο σύστημα όπως το bash; Δηλαδή μπορώ με την python να ανοίξω άλλα προγράμματα, να προγραμματίσω διεργασίες κτλ, ακόμη και ένα απλο ls η mv η cp;;
Debian 10 Buster 64bit
Intel Core i5 CPU M 430 2.27GHz ‖ RAM 3824 MiB ‖ Dell Inc. 0JY92C - Dell Inc. Inspiron 1564
ATI Manhattan [Mobility Radeon HD 5400 Series] [1002:68e0]
eth0: Realtek RTL8101E/RTL8102E PCI Express Fast Ethernet controller [10ec:8136] (rev 02) ⋮ eth2: Broadcom BCM4312 802.11b/g LP-PHY [14e4:4315] (rev 01)
Άβαταρ μέλους
Fedil
dudeTUX
dudeTUX
 
Δημοσιεύσεις: 441
Εγγραφή: 06 Σεπ 2009, 16:32
Τοποθεσία: ΗΡΑΚΛΕΙΟ
Εκτύπωση

Re: python αντι bash

Δημοσίευσηαπό lucinos » 14 Ιούλ 2014, 23:44

κατ αρχήν αν πρόκειται να τρέξεις έτσι και αλλιώς εντολές φλοιού τότε δεν είναι «απλοποίηση» με κανέναν τρόπο αφού πάλι χρησιμοποιείς bash. Γενικά η python δεν είναι καλή για τέτοιες δουλειές γιατί είναι σχεδιασμένη να είναι γλώσσα προγραμματισμού γενικής χρήσης _ανεξάρτητη_ από το σύστημα και όχι φλοιός για ένα σύστημα.

Από εκεί και πέρα αν θέλεις να κάνεις δουλειές τέτοιες μέσα από την python (είναι σε πολλές περιπτώσεις χρήσιμο) υπάρχουν διάφοροι τρόποι. Ο πιο πραφανής είναι με το άρθρωμα os.
δηλαδή:
Κώδικας: Επιλογή όλων

import os
os.system('ls')

θα τρέξει την εντολή ls
Spoiler: show
Γνώσεις → Linux: Μέτριος ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Μέτριος
Λειτουργικό → Ubuntu 11.04 natty 64-bit (el_GR.UTF-8)
Προδιαγραφές → CPU: 4x Intel Core i5 CPU 750 2.67GHz ‖ RAM 3953 MiB ‖ ASRock P55DE3
Κάρτες γραφικών: nVidia G92 [GeForce GTS 250] ⎨10de:0615⎬ (rev a2)
Δίκτυα: eth0: Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller ⎨10ec:8168⎬ (rev 03)
Άβαταρ μέλους
lucinos
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 828
Εγγραφή: 12 Δεκ 2010, 22:04
Εκτύπωση

Re: python αντι bash

Δημοσίευσηαπό Ilias95 » 15 Ιούλ 2014, 02:23

Fedil έγραψε:Δηλαδή μπορώ με την python να ανοίξω άλλα προγράμματα, να προγραμματίσω διεργασίες κτλ, ακόμη και ένα απλο ls η mv η cp;;

Για όλα τα παραπάνω που λες (και για πολλά άλλα) υπάρχουν έτοιμες συναρτήσεις στην python (οι οποίες είναι και cross platform συνήθως) οπότε δεν χρειάζεται να τρέξεις τις εντολές σε bash. Αν παρ' όλα αυτά χρειάζεται να το κάνεις μπορείς με την os.system() όπως αναφέρθηκε ή ακόμα καλύτερα τσέκαρε το subprocess module.

Η python είναι όντως πιο καθαρή γλώσσα απ' τον bash οπότε ίσως σου είναι όντως πιο εύκολο να την κατανοήσεις και να δουλέψεις μαζί της, ωστόσο για απλά scripts ίσως είναι καλό να προσπαθήσεις να δουλέψεις με bash. Θα κάνεις την δουλειά σου πολύ πιο εύκολα και με λιγότερες γραμμές κώδικα. Σε μεγαλύτερα scripts θα σου φανεί όντως χρήσιμη η python.
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση


Επιστροφή στο Περί Τεχνολογίας