Heim > Backend-Entwicklung > Python-Tutorial > So verwenden Sie das Python-Shell-Skript

So verwenden Sie das Python-Shell-Skript

王林
Freigeben: 2023-05-11 10:25:05
nach vorne
2449 Leute haben es durchsucht

1. Was ist sh

SH ist ein einzigartiger Unterprozess-Wrapper, der Ihre Systemprogramme dynamisch Python-Funktionen zuordnet. SH hilft Ihnen beim Schreiben von Shell-Skripten in Python, das nicht nur alle Funktionen von Bash unterstützt (einfacher Befehlsaufruf, einfache Pipe-Übertragung), sondern auch die Flexibilität von Python berücksichtigt.

SH ist eine ausgereifte Unterprozessschnittstelle in Python, die es Ihnen ermöglicht, jedes Systemprogramm so aufzurufen, als wäre es eine Funktion. Das heißt, mit SH können Sie nahezu jeden Befehl aufrufen, der von einer Login-Shell aus ausgeführt werden kann.

Darüber hinaus können Sie die Ausgabe Ihrer Befehle einfacher erfassen und analysieren. 2. Verwendungsschritte Der Befehl kann dann wie eine Python-Funktion verwendet werden.

Zum Beispiel Parameter übergeben, die Ausgabe erfassen und die Ausgabe in Python verwenden. Weitere Informationen finden Sie in den Codebeispielen unten.

pip install sh
Nach dem Login kopieren

Zwei Möglichkeiten, Unterbefehle zu schreiben.

Aber „Es sollte beachtet werden, dass es sich hierbei nicht um echte Python-Funktionen handelt. Was sie tatsächlich ausführen, sind die entsprechenden Binärbefehle im System. Genau wie Bash werden sie dynamisch auf dem System ausgeführt, indem sie PATH analysieren.

Aus diesem Grund Python Die Unterstützung für Shell-Befehle ist sehr gut und alle Befehle auf dem System können problemlos über Python ausgeführt werden.“

Viele Programme haben ihre eigene Untergruppe von Befehlen, wie zum Beispiel git (branch, checkout).

sh verarbeitet Unterbefehle über den Attributzugriff.

# get interface information
import sh
print sh.ifconfig("eth0")

from sh import ifconfig
print ifconfig("eth0")

# print the contents of this directory
print ls("-l")

# substitute the dash for an underscore for commands that have dashes in their names
sh.google_chrome("http://google.com")
Nach dem Login kopieren

4. Schlüsselwortargumente

Schlüsselwortargumente funktionieren auch wie erwartet: Sie werden durch Befehlszeilenargumentoptionen ersetzt.

# 子命令
>>> from sh import git, sudo
>>> print(git.branch("-v"))
>>> print(git("branch", "-v"))
>>> print(sudo.ls("/root"))
>>> print(sudo("/bin/ls", "/root"))

# with 环境
>>> with sh.contrib.sudo(_with=True):
        print(ls("/root"))
# _with=True 关键字告诉命令它正处于 with 环境中, 以便可以正确地运行.

#将多个参数传递给命令时,每个参数必须是一个单独的字符串:

from sh import tar
tar("cvf", "/tmp/test.tar", "/my/home/directory/")
# 这将不起作用:

from sh import tar
tar("cvf /tmp/test.tar /my/home/directory")
Nach dem Login kopieren

5. Find-Befehl

„Which“ findet den vollständigen Pfad des Programms und gibt None zurück, wenn er nicht existiert. Dieser Befehl ist einer der wenigen, der tatsächlich als Python-Funktion implementiert ist und daher nicht auf einer tatsächlichen „which“-Binärdatei basiert.

from sh import git

# resolves to "git branch -v"
print(git.branch("-v"))

print(git("branch", "-v")) # the same command
Nach dem Login kopieren

Es ​​sind noch viele weitere Funktionen verfügbar und alle sind zu finden. in der offiziellen Dokumentation.

6.Backparameter

sh kann den Parameter „Backen“ als Befehl verwenden, der die entsprechende vollständige Befehlszeilenzeichenfolge ausgibt, wie im folgenden Code gezeigt:

# Resolves to "curl http://duckduckgo.com/ -o page.html --silent"
sh.curl("http://duckduckgo.com/", o="page.html", silent=True)

# If you prefer not to use keyword arguments, this does the same thing
sh.curl("http://duckduckgo.com/", "-o", "page.html", "--silent")

# Resolves to "adduser amoffat --system --shell=/bin/bash --no-create-home"
sh.adduser("amoffat", system=True, shell="/bin/bash", no_create_home=True)

# or
sh.adduser("amoffat", "--system", "--shell", "/bin/bash", "--no-create-home")
Nach dem Login kopieren

ssh+Backbefehl

In Der Befehl „bake“ auf „bake“ aufrufen erstellt ein aufrufbares Objekt, das automatisch alle an „bake“ übergebenen Argumente übergibt.

print sh.which("python")     # "/usr/bin/python"
print sh.which("ls")         # "/bin/ls"

if not sh.which("supervisorctl"): sh.apt_get("install", "supervisor", "-y")
Nach dem Login kopieren

Jetzt kann „myserver“ aufgerufen werden, um einen Back-SSH-Befehl darzustellen:

# The idea here is that now every call to ls will have the “-la” arguments already specified.
from sh import ls

ls = ls.bake("-la")
print(ls) # "/usr/bin/ls -la"

# resolves to "ls -la /"
print(ls("/"))
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo verwenden Sie das Python-Shell-Skript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage