Pythonのシェル変数に引用されたパラメータを使用するには? [コピー]

Pythonのシェル変数に引用されたパラメータを使用するには? [コピー]

次のようにpytest呼び出しをパラメータ化しようとしています。

export OPTIONS="tests -k 'not e2e'"
pytest ${OPTIONS}

pytest変数の引用符のために呼び出しが失敗しました。オプションを通貨に直接入れるのが効果的です。

私は試した:

pytest ${OPTIONS} 
ERROR: file not found: tests -k 'not e2e'

pytest $(eval echo "${OPTIONS}") # removes all quotes
ERROR: file not found: e2e

pytest $(printf %s ${OPTIONS})

pytest呼び出し操作をパラメータ化するにはどうすればよいですか?

修正する

これ回答動作するソリューションが含まれています。

eval "OPTIONS=($OPTIONS)" # (opt.) convert an existing string to an array

export OPTIONS=(tests -k 'not e2e')
pytest "${OPTIONS[@]}"

この点をご指摘いただきありがとうございます。何時間も検索してきました。

ベストアンサー1

これを試してみましたか?

export OPTIONS="tests -k \'not e2e\'"

関係があるはずですeval

おすすめ記事