コマンド置換で一連の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

関連情報