同一个Linux服务器上,多人在同时使用,假如开发了一个shell脚本(名字为getcode.sh),大家在任何目录下都有可能会需要使用到,那么这种情况最好考虑写一个linux c语言的可执行程序(名为getcode),由这个c程序来执行shell脚本,然后将getcode二进制c程序放到/bin/或者/sbin/目录下,以后在任何目录都可以像使用ls命令一样来使用getcode,间接的就是在使用getcode.sh脚本了,而不需要每次将getcode.sh脚本拷贝当前目录来执行。
好吧!直接上代码,c语言下调用shell脚本
[cpp] view plaincopy
#include
#include
#include
int main(int argc, char *argv[])
{
//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
{
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 或者 . 命令 ,运行脚本可能会提示报错等。
阅读(1017) | 评论(0) | 转发(0) |