Wie man ein Bash-Skript aus Python heraus ausführt
Bash ist eine Unix-Shell und ein Befehlszeilenwerkzeug, das universell in GNU/Linux-Distributionen verwendet wird. Der Benutzer kann auch die Sequenz von Bash-Befehlen mithilfe einer einfachen Textdatei ausführen, die ein Bash-Skript ist. Manchmal müssen Programmierer das Bash-Skript aus einer Programmiersprache wie Python ausführen, um Aufgaben zu automatisieren, Dateien zu manipulieren, Debugging durchzuführen und Code zu kompilieren.
Dieser Artikel wird praktische Ansätze demonstrieren, um ein Bash-Skript bzw. einen Befehl aus innerhalb von Python-Code auszuführen. Der Artikel wird jedoch die folgende Gliederung abdecken:
- Voraussetzung: Installieren Sie Python auf Linux
- Bash-Skript mit dem Subprocess-Modul ausführen
- Bash-Skript mit dem OS-Modul ausführen
- Bonus Tipp: Führen Sie Bash-Befehle in Python aus
- Fazit
Voraussetzung: Python unter Linux installieren
Python (eine hochgradige Skriptsprache) ist eine weit verbreitete und allgemein verwendbare Programmiersprache auf der ganzen Welt. Von Python-Programmierern wird in der Regel erwartet, dass sie das Bash-Skript innerhalb des Programms zur Automatisierung von Aufgaben ausführen. Normalerweise ist python3 in der Linux-Distribution vorinstalliert. Wenn Python nicht auf dem System installiert ist, installieren Sie es, indem Sie die folgenden Anweisungen befolgen.
Schritt 1: Aktualisieren und Upgraden des APT-Repositorys
Zuerst öffnen Sie das Linux-Terminal mit der Tastenkombination „CTRL+ALT+T“ oder über das Aktivitätsmenü. Danach aktualisieren Sie das Linux APT-Repository:
sudo apt update
Als nächstes aktualisieren Sie das Repository mit dem “apt upgrade”-Befehl:
sudo apt upgrade -ySchritt 2: Python installieren
Jetzt installieren Sie Python auf der Maschine, indem Sie den Befehl „apt install python3“ mit „sudo“-Rechten ausführen:
sudo apt install python3Schritt 3: Überprüfung
Um zu überprüfen, ob Python auf dem System installiert ist oder nicht, verwenden Sie den “apt show”-Befehl:
apt show python3Die folgende Ausgabe zeigt, dass die Python 3-Version "3.11.2" auf dem System installiert ist:
Wie man ein Bash-Skript mit einem Subprozess-Modul ausführt?
Das subprocess-Modul ist das neueste Python-Modul, das verwendet wird, um Prozesse zu erzeugen, I/O-Verarbeitung und Fehlerströme zu verwalten und Rückgabewerte zu erhalten. Es ist der Ersatz für ältere Python-Module wie Os. Um das Bash-Skript aus dem Python-Programm auszuführen, folgen Sie den gegebenen Anweisungen.
Beispiel 1: Bash-Skript mit “subprocess.run” ausführen
Der „subprocess.run“-Prozess wird verwendet, um den Unterprozess auszuführen. Verwenden Sie also die run()-Methode des „subprocess“-Moduls, um das vorhandene Bash-Skript auszuführen. Um das Bash-Skript mit der Unterprozessmethode „run()“ auszuführen, befolgen Sie die angegebenen Anweisungen.
Schritt 1: Erstellen Sie ein Bash-Skript
Erstellen Sie eine neue Datei mit dem Namen „bash_script.sh“ mit dem Texteditor nano. Führen Sie zu diesem Zweck den angegebenen Befehl aus:
sudo nano bash_script.sh
Beginne die Datei mit „#!/bin/bash“, um die Bash-Befehle anzugeben. Danach füge den erforderlichen Befehl in das Bash-Skript ein. Zum Beispiel haben wir den Befehl „echo“ hinzugefügt:
#!/bin/bash
echo "Hello! Welcome to Linuxhint Tutorial"Um das Bash-Skript zu speichern, verwenden Sie die “CTRL+S”-Taste, und um den Editor zu verlassen, drücken Sie “CTRL+X”.
Schritt 2: Erstellen Sie ein Python-Programm
Als nächstes erstellen Sie die Python-Programmdatei „filename.py“ in einem Nano-Texteditor:
sudo nano demo.pyImportiere das “subprocess ” Modul, verwende die “subprocess.run ” Methode, übergebe den Pfad zum Bash-Skript als Parameter und setze den Wert des “shell ” Parameters auf true:
import subprocess
print (subprocess.run([r"./bash_script.sh", "arguments"], shell=True))Als Nächstes speichern Sie die Datei und verlassen den Nano-Editor.
Schritt 3: Machen Sie das Bash-Skript ausführbar
Um das Bash-Skript innerhalb des Python-Programms auszuführen, muss der Benutzer dessen Berechtigungen als ausführbar festlegen. Zu diesem Zweck führen Sie den folgenden Befehl aus:
sudo chmod +x bash_script.shSchritt 4: Führen Sie das Python-Programm aus
Führen Sie die Python-Datei aus, um das Python-Programm auszuführen. Zu diesem Zweck verwenden Sie den “python3 <filename.py> ” Befehl:
python3 demo.pyDie Ausgabe zeigt, dass wir das Bash-Skript effektiv aus dem Python-Programm ausgeführt haben:
Beispiel 2: Bash-Skript mit “subprocess.call” ausführen
Das subprocess-Modul “call() ”-Methode wird verwendet, um die Befehle auszuführen und zu warten, bis die Verarbeitung des Befehls abgeschlossen ist. Im unten dargestellten Beispiel wird dieselbe Bash-Datei verwendet, die im obigen Beispiel verwendet wurde. Um das Bash-Skript mit der Methode “subprocess.call ” auszuführen, befolgen Sie die gegebenen Anweisungen.
Schritt 1: Erstellen Sie ein Python-Programm
Erstellen und öffnen Sie die Python-Programmdatei in einem Nano-Texteditor, wie im obigen Beispiel gezeigt. Fügen Sie danach den folgenden Code in die Datei ein:
import subprocess
print("Running Bash Script”)
subprocess.call(r"./bash_script.sh", shell=True)
print("Operation Successfull")In dem obigen Snippet übergibt die Methode “subprocess.call” zwei Parameter, einer ist “Pfad zum Bash-Skript” und der zweite ist “Shell”:
Schritt 2: Python-Programm ausführen
Führen Sie danach das Programm mit dem angegebenen Befehl aus:
python3 demo.pyDas folgende Ergebnis zeigt, dass wir das Bash-Skript erfolgreich mit der Methode “subprocess.call” ausgeführt haben:
Wie man ein Bash-Skript mit einem OS-Modul ausführt?
Das “OS” Modul von Python wird verwendet, um mit dem Betriebssystem zu interagieren, wobei es hauptsächlich zum Erstellen von Ordnern, Zugreifen auf den Inhalt von Ordnern oder Durchführen von Änderungen verwendet wird. Um das Bash-Skript von Python aus zuzugreifen und auszuführen, kann das OS-Python-Modul verwendet werden. Gehe dazu die aufgeführten Schritte durch.
Schritt 1: Erstellen Sie ein Python-Programm
In diesem Beispiel wird dasselbe Bash-Skript verwendet, das im obigen Abschnitt verwendet wurde. Als Nächstes fügen Sie den folgenden Code in die Python-Programmdaten ein:
import os
os.system('sh bash_script.sh')Schritt 2: Python-Programm ausführen
Führen Sie das Python-Programm aus, um das Bash-Skript mit dem “os” Modul auszuführen:
python3 demo.pyHier können Sie sehen, dass wir das Bash-Skript erfolgreich mit dem Python “os” Modul ausgeführt haben:
Benutzer können auch die Bash-Befehle innerhalb von Python-Code ausführen. Um einen Einblick zu erhalten, wie Bash-Befehle ausgeführt werden, folgen Sie dem nächsten Abschnitt.
Bonus-Tipp: Führen Sie Bash-Befehle in Python aus
Um den Bash-Befehl direkt im Python-Programm auszuführen, gehen Sie durch die folgenden Beispiele.
Beispiel 1: Führen Sie einen Bash-Befehl in Python mit „subprocess.run“ aus
Führen Sie den Bash-Befehl aus, um das Verzeichnis und die Dateien zusammen mit den Berechtigungsdetails mit den Befehlen „ls“ und „-l“ aufzulisten. Diese Befehle können mit der Methode „subprocess.run“ des Python-Moduls „subprocess“ ausgeführt werden:
import subprocess
subprocess.run(["ls", "-l"])Jetzt das Python-Programmdokument ausführen:
python3 demo.pySie können sehen, dass wir die aktuellen Verzeichnisdateien effektiv aufgelistet haben, indem wir den Bash-Befehl aus dem Python-Programm ausgeführt haben:
Beispiel 2: Führen Sie einen Bash-Befehl in Python mit „subprocess.Popen“ aus
Die Erstellung und Verwaltung von Prozessen im Unterprozessmodul erfolgt über die “Popen” Unterprozessklasse. Um den Bash-Befehl aus dem Python-Programm auszuführen, fügen Sie den folgenden Codeausschnitt in die Python-Programmdaten ein:
import subprocess
popen_process = subprocess.Popen (["echo", "Welcome to Linuxhint Tutorial"], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
output= popen_process.communicate( )
print(output)Im obigen Ausschnitt wird die Funktion “communicate()” mit der Anwendung des Betriebssystems interagieren und die Datei öffnen:
Führen Sie die Programmdatei aus, um den Bash-Befehl von Python auszuführen:
python3 demo.pyDie Ausgabe zeigt, dass das Python-Programm den Bash-Befehl erfolgreich ausgeführt hat:
Beispiel 3: Bash-Befehle in Python mit “os.system” ausführen
Die “os.system ”-Methode des Python-“os ”-Moduls kann auch den Bash-Befehl zur Anzeige des Verzeichnisses ausführen. Zu diesem Zweck sehen Sie sich den folgenden Codeausschnitt an, der die Dateien im aktuellen Verzeichnis auflistet und eine Zeichenfolge auf der Konsole mit Bash-Befehlen ausgibt:
import os
os.system("ls")
os.system("echo Successfully executed bash commands")Führen Sie nun das Python-Programm mit „python3 <dateiname.py>“ aus:
python3 demo.pyWir haben den Bash-Befehl Verzeichnis erfolgreich aus Python ausgeführt:
Wir haben behandelt, wie man Bash-Skripte und -Befehle aus Python ausführt.
Fazit
Um ein Bash-Skript aus Python auszuführen, werden die Module "os" und "subprocess" verwendet. Bei der Ausführung eines Bash-Skripts interagiert das Modul "os" mit dem Betriebssystem und verarbeitet die Ausgabe entsprechend. Das Modul "subprocess" hingegen nimmt Eingaben entgegen und gibt Ausgaben zurück, während es andere Funktionen und Methoden wie run(), call() und Popen() verarbeitet. Dieser Artikel handelt ganz davon, Bash-Skripte aus Python auszuführen.
















