例如,exexl("/bin/echo", "echo", "$PATH", NULL)
。它只显示$PATH
,而不显示PATH
值。我如何通过exexl
函数来完成?
答案 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()