出于好奇,我想知道什么是最简单的方式来执行两个或多个Linux命令。让我们来看看下面的例子:一个可执行函数中的几个终端命令
1) free > tmp1
2) uptime > tmp2
3) cat tmp1 tmp2 > result
4) rm tmp1 tmp2
我们如何能与1号线实现终端相同的:
free > tmp1 && uptime > tmp2 && cat tmp1 tmp2 > result && rm tmp1 tmp2
现在我试图实现在C相同++(的目标是做一个execlp)例如:
pid_t child;
child = fork();
if (child > 0) {
execlp("free", "free", ">", "tmp1", "&&", "uptime", "uptime", ">", "tmp2", "cat", "cat", "tmp1", "tmp2", ">", "result", "&&", "rm", "rm", "tmp1", "tmp2", NULL);
}
你得到的图片我想。不用说,它不起作用,它只是执行第一个命令,然后死亡。无论如何在这一点上。
真的有必要在一个循环中创建一个分叉过程中单独execlp线,然后以“刷新”的子进程?或者我们有其他方法可以在单个execlp行中执行相同的操作吗?
如果可能的话,请留下,我们怎么能达到同样结果的一个例子。
谢谢。
有没有你不能使用超过一个'execlp'更多理由吗?另外,你确定'''在'execlp'中起作用吗? – Xymostech 2013-04-10 17:59:13
真的没有具体的原因,我只是想探索的选项。不,我不确定,这就是我问的原因。仍在学习。 – dusz 2013-04-10 18:01:05
小优化:“free> result && uptime >> result” – loentar 2013-04-10 18:13:53