ホームページ >バックエンド開発 >Python チュートリアル >Pythonシェルスクリプトの使い方
pip install shをインストールします
起動して実行する最も簡単な方法は、sh を直接インポートするか、必要なコマンドを sh からインポートすることです。このコマンドは Python 関数のように使用できます。
たとえば、パラメーターを渡し、出力をキャプチャし、その出力を Python で使用します。詳細については、以下のコード例を参照してください
# 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")
サブコマンドを記述する 2 つの方法
# 子命令 >>> 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")
コマンドは関数と同じように呼び出されます。
ただし、「これらは実際の Python 関数ではないことに注意してください。実際に実行されるのは、システム内の対応するバイナリ コマンドです。Bash と同様に、PATH を解析することによってシステム上で動的に実行されます。
このため、Python はシェル コマンドを非常に適切にサポートしており、システム上のすべてのコマンドは Python を通じて簡単に実行できます。」
多くのプログラムには、git (ブランチ) などの独自のコマンドのサブセットがあります。 、 サインアウト)。
sh は属性アクセスを通じてサブコマンドを処理します。
from sh import git # resolves to "git branch -v" print(git.branch("-v")) print(git("branch", "-v")) # the same command
キーワード引数も期待どおりに機能し、コマンド ライン引数オプションに置き換えられます。
# 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")
「Which」はプログラムのフルパスを検索し、存在しない場合は None を返します。このコマンドは、実際に Python 関数として実装されている数少ないコマンドの 1 つであるため、実際の「どの」バイナリに依存しません。
print sh.which("python") # "/usr/bin/python" print sh.which("ls") # "/bin/ls" if not sh.which("supervisorctl"): sh.apt_get("install", "supervisor", "-y")
sh で利用できる機能は他にもたくさんあり、それらはすべて見つかります。公式ドキュメントに記載されています。
sh は、「baking」パラメータをコマンドとして使用できます。これにより、次のコードに示すように、対応する完全なコマンド ライン文字列が出力されます。
ssh ベイク コマンド
コマンドで「bake」を呼び出すと、「bake」に渡されるすべての引数を自動的に渡す呼び出し可能オブジェクトが作成されます。# 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("/"))これで、ベイク SSH コマンドを表すために「myserver」を呼び出すことができます:
# Without baking, calling uptime on a server would be a lot to type out: serverX = ssh("myserver.com", "-p 1393", "whoami") # To bake the common parameters into the ssh command myserver = sh.ssh.bake("myserver.com", p=1393) print(myserver) # "/usr/bin/ssh myserver.com -p 1393"
以上がPythonシェルスクリプトの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。