如何使用 echo 在 execle() 中打印环境变量?

How to Print environment variable in execle() using echo?

我试过这段代码。

char *env[]={"first=one","second=two","third=three",NULL};

execle("/bin/echo","echo","$first","$second","$third",(char *)0,env);

它给出输出

$first $second $third

显然这不是我所期待的。他们有什么方法可以使用 echo 打印环境变量吗?

我使用 printenv 获取变量。如果有关系。

 execle("/usr/bin/printenv","printenv","first","second","third",(char *)0,env);

输出:

one
two
three

命令行扩展由 shell 在调用命令之前提供。要按预期进行扩展,您可以使用“-c”选项执行 shell 并执行整个命令行。

execle("/bin/bash","bash", "-c", "echo $first $second $third",(char *)0,env);