Linux环境下c语⾔程序执⾏shell脚本
同⼀个Linux服务器上,多⼈在同时使⽤,假如开发了⼀个shell脚本(名字为getcode.sh),⼤家在任何⽬录下都有可能会需要使⽤到,那么这种情况最好考虑写⼀个linux c语⾔的可执⾏程序(名为getcode),由这个c程序来执⾏shell脚本,然后将getcode⼆进制c程序放到/bin/或者/sbin/⽬录下,以后在任何⽬录都可以像使⽤ls命令⼀样来使⽤getcode,间接的就是在使⽤getcode.sh脚本了,⽽不需要每次将getcode.sh脚本拷贝当前⽬录来执⾏。
好吧!直接上代码,c语⾔下调⽤shell脚本
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(int argc, char *argv[])
{
linuxshell脚本怎么运行//printf("count: %d\n", argc);
char sh_cmd[500];
//memset(sh_cmd, , sizeof(char)*500);
// use bash not source or .
sprintf(sh_cmd, "bash /home/ubuntu/zhangmin/develop/getcode/getcode.sh");
//将执⾏时的参数全部传给run_py.sh脚本
int i = 0;
for (i=1; i<argc; ++i)
{
sprintf(sh_cmd, "%s %s", sh_cmd, argv[i]);
}
//printf("%s", sh_cmd);
system(sh_cmd);
printf("\n");
//system("logname");
//system("whoami");
}
最后使⽤gcc getcode.c -o getcode命令编译⽣成getcode应⽤程序
cp -fr getcode /bin/
sudo chmod 777 -R /bin/getcode
注意:
bash /home/ubuntu/zhangmin/develop/getcode/getcode.sh
这⾥执⾏getcode.sh脚本⽤到了bash,getcode.sh开头处使⽤!#/bin/bash
如果采⽤source 或者 . 命令,运⾏脚本可能会提⽰报错等。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论