linux c 怎么调用shell脚本?急问~~ 谢谢

mmerhous 2009-07-15 03:17:57
最近写了一个小脚本,想用c调用shell脚本(sedtxt),从网上搜的结果,用
#include <stdlib.h>
……………………
system("sedtxt");
………………
的方法调用,但是报错sh: sedtxt: command not found,我给这个脚本赋权限了。
请教,应该怎么调用shell呢??
...全文
638 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
mmerhous 2009-07-16
  • 打赏
  • 举报
回复
谢谢各位,问题解决了~ 我的shell在当前目录下,以后我会注意这个绝对路径的问题。非常感谢
jiangfeng999 2009-07-16
  • 打赏
  • 举报
回复
建议用exec,这样不要再开辟一个子进程
magic1136 2009-07-16
  • 打赏
  • 举报
回复
fork
exec
system
g_spawn_command_line_async
yhf365 2009-07-16
  • 打赏
  • 举报
回复
如果sedtxt和你的c程序在一个目录下,
就用system("./sedtxt");
或者用source指令。

如果不在,且PATH环境变量中没有sedtxt的存放路径,则需要完整路径。
once_and_again 2009-07-15
  • 打赏
  • 举报
回复
exec() 系列 的函数吧..
happybeginner 2009-07-15
  • 打赏
  • 举报
回复
路径不对 把sedtxt放到/usr/bin或者/bin下面
superbtl 2009-07-15
  • 打赏
  • 举报
回复
你这个没路径啊 要写个绝对路径
pottichu 2009-07-15
  • 打赏
  • 举报
回复
popen 也可以。。
同楼上几位, 注意路径。
steptodream 2009-07-15
  • 打赏
  • 举报
回复
system("sedtxt");
setxt的地方要写成全路径
如果在当前路径 那么要写成./sedtxt

另外保证sedtxt有执行权限
ShowMan 2009-07-15
  • 打赏
  • 举报
回复
fork()
exec*()
system()
hefuhua 2009-07-15
  • 打赏
  • 举报
回复
使用
system("source sedtxt");

或者

system(". sedtxt");
犇犇犇程序猿 2009-07-15
  • 打赏
  • 举报
回复
要写绝对路径名 例如 /root/shell/abc.sh
那么就要 写成 system("/root/shell/abc.sh");

同时也要有权限。 chmod u+x /root/shell/abc.sh

23,120

社区成员

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

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