出於好奇,我想知道什麼是最簡單的方式來執行兩個或多個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