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

So verwenden Sie das Python-Shell-Skript

王林
王林nach vorne
2023-05-11 10:25:052414Durchsuche

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

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")

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")

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

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")

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")

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("/"))

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen