2013-11-04 21 views
0

參數我想創建簡單的程序,它會從參數運行shell命令,例如如何從命令

./run date +"%r" 

07:56:05 PM 

運行execlp,但我不能圖如何。我嘗試這個,但它不工作。我很困惑,絕對傾斜人物如何EXEC作品..

#include <unistd.h> 
#include <stdio.h> 

int main (int argc, char *argv[]){ 

    execlp("bash","bash", "argv[1]", (char*)0); 


    return 0; 
} 
+1

你不應該把'argv [1]'放在引號中。 –

+0

您可以使用execvp嗎?這將是eaiser。 –

回答

0

你大概意思(注意缺少引號周圍argv[1]):

execlp("bash", "myprogram", argv[1], NULL); 

請注意,我這裏假設myprogram是一個shell腳本。如果是二進制文件,則應刪除前面的"bash"參數。

一個很好的故障排除技術可能會取代bashecho以確認命令行。

+0

感謝您的回答。我儘快嘗試,但輸出的代碼是錯誤的。例如:「./myprogram ls」輸出「/ bin/ls:/ bin/ls:不能執行二進制文件」 – user2953639

+0

刪除第一個「bash」參數--bash不能以這種方式執行二進制文件。 –

+0

但這就是我真正想要的,從myprogram參數執行shellscript命令,不僅寫出來。 – user2953639