如何在C中调用linux shell脚本并传递参数?

goodmrning 2010-09-07 10:41:33
在c 中如何调用linux脚本,这个脚本要求输入二个参数,现在想直接在c中调用这个脚本时,一起把这两个参数也传过去。

我知道有个函数system(char *str),调用脚本:system("copy.sh");但这样参数不能传进去。


各位,能什么办法能实现啊?
...全文
1083 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dreamlydong 2011-07-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 brookmill 的回复:]
strcpy(cmdline, "copy.sh");
strcat(cmdline, " "); // 刚才忘了加空格
strcat(cmdline, str1);
strcat(cmdline, " ");
strcat(cmdline, str2);
system(cmdline);



多谢3楼
justkk 2010-09-08
  • 打赏
  • 举报
回复
goodmorning写错了,哈
system()调用一个命令,在命令行手工执行的完整的命令文本都可以作为它的参数

如:
system("ls");
system("ls -l");
system("ls -l yourfile");
...
louyong0571 2010-09-08
  • 打赏
  • 举报
回复
system("copy.sh para1 para2");
steptodream 2010-09-08
  • 打赏
  • 举报
回复
楼上已经说了 既然都是脚本的参数了 那执行的时候命令就应该是一个整体 你干嘛只写copy.sh
brookmill 2010-09-07
  • 打赏
  • 举报
回复
strcpy(cmdline, "copy.sh");
strcat(cmdline, " "); // 刚才忘了加空格
strcat(cmdline, str1);
strcat(cmdline, " ");
strcat(cmdline, str2);
system(cmdline);

还是sprintf省事
sprintf(cmdline, "copy.sh %s %s", str1, str2);
brookmill 2010-09-07
  • 打赏
  • 举报
回复
char cmdline[100];
// 如果参数是两个字符串
strcpy(cmdline, "copy.sh");
strcat(cmdline, str1);
strcat(cmdline, str2);
system(cmdline);

// 如果参数是两个整数
sprintf(cmdline, "copy.sh %d %d", i1, i2);
system(cmdline);

brookmill 2010-09-07
  • 打赏
  • 举报
回复
system("copy.sh para1 para2");

23,216

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧