如何通过execl函数显示HOME值?

时间:2018-04-12 11:46:16

标签: c environment-variables exec

例如,exexl("/bin/echo", "echo", "$PATH", NULL)。它只显示$PATH,而不显示PATH值。我如何通过exexl函数来完成?

2 个答案:

答案 0 :(得分:1)

Environement变量由shell扩展,而不是像echo

这样的程序
exexl("/bin/sh", "sh", "-c", "echo $PATH", NULL);

将调用shell,要求它执行" echo $ PATH",然后执行您想要的操作。

答案 1 :(得分:0)

由于PATH是一个shell变量,因此无法执行execl("/bin/echo", "echo", "$PATH", NULL)。而不是execl()使用execlp(),因为它可以在PATH环境变量&中搜索可执行文件。可以执行脚本。

你想执行$PATH,为此编写一个像

这样的小脚本
achal@my_system:~$ vi test.sh 
echo $PATH 

在命令行上运行export PATH=.:$PATH。最后使用execlp()作为

执行它
int main() {
        execlp("test.sh","test.sh",NULL);
        return 0;
}

或者按照其他人的建议,您可以使用getenv()