首页后端开发其他后端知识C++怎么驱动bash,代码怎样写

C++怎么驱动bash,代码怎样写

时间2024-03-28 13:10:03发布访客分类其他后端知识浏览1488
导读:这篇文章给大家介绍了“C++怎么驱动bash,代码怎样写”的相关知识,讲解详细,步骤过程清晰,对大家进一步学习和理解“C++怎么驱动bash,代码怎样写”有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着小编的思路一起来学习一...
这篇文章给大家介绍了“C++怎么驱动bash,代码怎样写”的相关知识,讲解详细,步骤过程清晰,对大家进一步学习和理解“C++怎么驱动bash,代码怎样写”有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着小编的思路一起来学习一下吧。

之前为了linux维护检验方便,实现lis命令采用centos别名实现。不恰当的别的干扰了别的命令的使用。为了不干扰系统命令,又不想每次输出执行bash的全命令,这次用C++驱动bash,这样编译好之后文件放入/usr/bin下后只要执行imedicallis命令就可呼出检验菜单。

实现代码

#includecstdlib>
    
#includestring>
    
#includecstdio>
    
#includecstring>
    
#includeiostream>
    
#includealgorithm>
    
using namespace std;
    

//定义数组大小
#define NUM 900

//执行方法
extern void Invoke(string cmd);
    
#ifdef WIN32
/// summary>
    
/// 执行命令
/// /summary>
    
/// param name="cmd">
    /param>

void Invoke(string cmd)
{
    
	cout  "仅支持linux驱动检验运维命令:"  cmd  endl;

}
    
#else
/// summary>
    
/// 执行命令
/// /summary>
    
/// param name="cmd">
    /param>

void Invoke(string cmd)
{
    
	char line[NUM];
    
	FILE* fp;
    
	//系统调用
	const char* sysCommand = cmd.data();

	if ((fp = popen(sysCommand, "r")) == NULL)
	{
    
		cout  "错误"  endl;
    
		return;

	}

	//输出
	while (fgets(line, sizeof(line) - 1, fp) != NULL)
	{
    
		cout  line;

	}
    
	pclose(fp);

}
    
#endif
/// summary>
    
/// mian方法
/// /summary>
    
/// returns>
    /returns>

int main() {
    
	//执行bash脚本
	string cmdStr = "bash /dthealth/app/dthis/imedicallis/tool/lis.sh";
    
	cout  "欢迎使用imedicallis的linux命令呼出入口,通过imedicallis命令引导bash脚本"  endl;
    
	cout  "执行命令:"  cmdStrendl;
    
	//执行命令
	Invoke(cmdStr);
    
	return 0;

}
    

上传linux编译

[root@iris142 imedicallis]# ls
CMakeLists.txt  imedicallis  imedicallis.cpp  out
[root@iris142 imedicallis]# g++ -o imedicallis imedicallis.cpp
[root@iris142 imedicallis]# ll
total 24
-rw-r--r-- 1 root root   363 Nov 16 14:09 CMakeLists.txt
-rwxr-xr-x 1 root root 14120 Nov 16 16:30 imedicallis
-rw-r--r-- 1 root root  1213 Nov 16 14:13 imedicallis.cpp
drwxr-xr-x 3 root root    19 Nov 16 14:04 out
[root@iris142 imedicallis]# 

然后就得的可执行的imedicallis程序,投入/usr/bin下就是一个imedicallis命令,就可以如下使用

可以结合C++和bash实现菜单式运维命令,避免输错命令导致事故。命令就是一个控制台程序,没有那么神秘,实在是shell不好实现的功能用C++或者dotnetcore写代码实现也方便,结合各自优点,bash就是依赖少,修改快,能用他的还是优先用他。


以上就是关于“C++怎么驱动bash,代码怎样写”的相关知识,感谢各位的阅读,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注网络,小编每天都会为大家更新不同的知识。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: C++怎么驱动bash,代码怎样写
本文地址: https://pptw.com/jishu/654960.html
MyBatis Log 插件不能打印SQL怎么办 JavaScript中Array方法怎么使用

游客 回复需填写必要信息