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[])
{
	//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 或者 . 命令 ,运行脚本可能会提示报错等。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值