💨

【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