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

관련 정보