コマンドライン引数を受け取るPythonスクリプトのAliasについて
この記事では、Shellスクリプトを使用してPythonスクリプトを実行し、実行時に動的にコマンドライン引数を渡す方法を詳しく解説します。この方法は、スクリプトを柔軟に再利用可能にし、さまざまなパラメータで簡単に実行できるようにするために役立ちます。
必要な環境
- Unix系OS(Linux, macOSなど)
- Python 3.x
- BashまたはZsh
スクリプトの解説
1. Pythonスクリプトの準備
まず、以下のような簡単なPythonスクリプトを用意します。このスクリプトはコマンドラインから引数を受け取り、それらを出力します。
# filename: example.py
import sys
if __name__ == "__main__":
print("受け取った引数:", sys.argv[1:])
2. Shellスクリプトの作成
次に、このPythonスクリプトを実行するShellスクリプトを作成します。このスクリプトは任意の数の引数をPythonスクリプトに渡します。
#!/bin/bash
# filename: run_python.sh
# スクリプトに渡す引数を全てPythonスクリプトに渡します。
python /path/to/example.py "$@"
3. スクリプトの実行権限設定
Shellスクリプトに実行権限を与えます。
chmod +x run_python.sh
4. スクリプトの実行
実際にスクリプトを実行してみます。
./run_python.sh arg1 arg2 arg3
出力例:
受け取った引数: ['arg1', 'arg2', 'arg3']
解説
このShellスクリプトは、"$@"
を使用しているため、スクリプトに渡された全ての引数をそのままPythonスクリプトに渡します。"$@"
は、全引数を個別の文字列として保持し、スペースや特殊文字が含まれている引数も正確に扱います。
まとめ
この方法を使用すれば、さまざまなパラメータでPythonスクリプトを簡単に実行できます。引数を動的に扱うことで、スクリプトの汎用性が高まり、自動化やテストなど幅広い用途で利用することが可能です。