2013-11-04 25 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