如何使用 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);
我试过这段代码。
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);