python3から外部shellを実行する
以下は、python3から、bashを外部実行しているメモになります
外部shellを実行する場合は、subprocess ライブラリを使うっぽい。
と、まだ、全然pythonわかっていないのですが(汗)
記述としては
import subprocess
といった形で宣言する。。といった感じですかね
パラメータ付き
bash実行の際に、
$ /usr/local/shell.sh 111
みたいな感じで実行するshellの場合は、
subprocess.runでは、以下のようにかく感じ
subprocess.run(["/usr/local/shell.sh", "111"])
パラメータ無し
こんな感じになるのかな?
subprocess.run(["/usr/local/shell.sh"]
一点、注意があって、外部プロシージャを実行した際に、pythonからこんなエラーを出力されたことがあるのですが、
OSError: [Errno 8] Exec format error
一瞬ぱにくって、色々と調べたら、読んで字のごとくではないですが、
ちゃんと実行するshell側に、例えば今回、bashですが
#!/bin/bash
って書いてくれないと、なんのshell実行するかわかんないよってことらしいw