変数に複数のコマンドを保存できないのはなぜですか?

変数に複数のコマンドを保存できないのはなぜですか?

Bashでさまざまな作業を試しているのに理解できない動作を見つけました。

CODE="pwd";$CODE

このコードはうまく動作します。

CODE="pwd;pwd";$CODE

しかし、これはうまくいきません。 (明らかに、&&と同じように壊れています。)
どのようなアイデアがありますか?

ベストアンサー1

シェルは$CODEコマンドで実行されます。パスに名前が付いたコマンドを生成すると、そのpwd;pwdコマンドが実行されます。これを実行するには、$CODE次のようにシェルに明示的に入力します。

CODE="pwd;pwd";sh -c "$CODE"

おすすめ記事