BashからPython関数に文字列を渡す方法

BashからPython関数に文字列を渡す方法

引数を入力として受け入れるPython関数があり、それを自動化してbashを介して呼び出したいと思います。ただし、呼び出し中に変数(文字列)を渡すと、bashでエラーが発生します。

a="test"
python -c "from pipeline_runs.z_full_pipeline import test; test($a)"

失敗した

NameError: name 'test' is not defined

しかし、変数がintの場合、効果は同じです。

a="10"
python -c "from pipeline_runs.z_full_pipeline import test; test($a)"

最初のコードが失敗した場合に実行されます。この現象が発生する理由と、bashスクリプトでPython関数に文字列を渡すために何を変更する必要があるかを説明できる人はいますか?

ベストアンサー1

代わりにシェル関数で作成してください。これを端末に貼り付けるか、シェルの設定ファイル(~/.bashrc例:bashの場合)に追加します。

pipeline_test(){
  python -c 'from sys import argv; from pipeline_runs.z_full_pipeline import test; test(argv[1])' "$@"
}

次に、次のように実行します。

pipeline_test "$a"

おすすめ記事