💨
【Python】引数をつけてPythonからShellを実行!
📕 概要
・複数の引数を指定して Python から shellを実行する。
・今回はdebug用のShellも利用
🔣 サンプルコード
・引数をつけて shell を実行するPythonのプログラム
import subprocess
result = subprocess.run(["/tmp/sample/debug.sh", "TEST", "APPLE", "GOOGLE", "MICROSOFT" ,"Amazon"], capture_output=True, text=True)
print(result.stdout) # 標準出力: 実行したスクリプトが出力した内容
print(result.stderr) # 標準エラー出力: 実行したスクリプトがエラーとして出力した内容
print(result.returncode) # 戻り値: 実行したスクリプトの終了コード(0が成功、0以外はエラー)
もらった引数を表示するdebug用のShell
#!/bin/bash
# 引数の数をチェック
if [ "$#" -gt 5 ]; then
echo "引数は最大5個までです。"
exit 1
fi
# 引数を表示
printf "受け取った引数: "
for arg in "$@"; do
printf "%s " "$arg"
done
printf "\n"
💡 ヒント
subprocessからshellを呼び出せない場合は chmod +x debug.sh で実行権限を付与する。
🧪 実行例
$ python arg_test01.py
受け取った引数: TEST APPLE GOOGLE MICROSOFT Amazon
0
$
💡 ヒント
print(result.stdout)でスクリプトの標準出力結果を表示
0はshell実行に成功したことを表す。(0以外は正常終了していない)
Discussion