명령 대체를 통해 일련의 bash 명령을 실행하는 방법

명령 대체를 통해 일련의 bash 명령을 실행하는 방법

다음과 같은 bash 변수가 있다고 가정해 보겠습니다.

tmp1='$(echo foo)'

또는

tmp2='`echo foo`'

이 효과를 달성하는 방법은 무엇입니까 foo?

문자열에서 명령 대체를 제거하면 작동한다는 것을 알고 있지만 이 외에 다른 방법이 있습니까?

답변1

이것은 작동합니다:

eval "echo $tmp"

또는

bash -c "echo $tmp"

나는 친구로부터 이런 말을 들었다.

답변2

대답은 "하지 마세요"입니다. 이것은 단순히 Bash가 수행하도록 설계된 것이 아닙니다:

http://mywiki.wooledge.org/BashFAQ#BashFAQ.2F050.I.27m_trying_to_put_a_command_in_a_variable.2C_but_the_complex_cases_always_fail.21

관련 정보