linux - 将 C 和 python 与 Bash 相结合
问题描述
我在 C 中有以下代码:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int i;
double x;
double pi;
pi = M_PI;
double increment;
FILE * fp;
fp = fopen ("FILE","w");
x = 0;
increment = 4* pi / 500;
for (i = 0; i<=500; i++)
{
x = i * increment;
printf("i: %d, tan(x): %f\n", i, tanf(x));
fprintf (fp, "%d, %f\n",i, tanf(x));
}
fclose (fp);
exit(0);
}
以及以下 Python 代码:
import matplotlib.pyplot as plt
import os
f = open("FILE", "r")
lines=f.readlines()
first =[]
second=[]
for x in lines:
first.append(int(x.split(', ')[0]))
second.append(float(x.split(', ')[1]))
f.close()
plt.plot(first, second)
plt.show()
os.remove("FILE")
C 代码生成保存在文本文件中的数据。python 代码读取该文本文件并绘制图形。绘制绘图后,python 删除数据文件。
我需要制作一个执行两段代码的 bash 文件,就像一种胶水一样。我已经阅读了有关 bash 的教程,但我仍然不清楚如何编译和执行 C 以及运行 python。
问题:如何制作一个在 linux 中运行两段代码的 bash 文件?
解决方案
一旦您的 C 程序被编译成可执行文件(二进制文件),这非常简单。假设您的 C 程序生成可执行文件table
,并且您的 python 脚本被调用plot.py
:
#!/bin/bash
./table && python plot.py
这将按顺序运行这两个程序。这&&
意味着第二个程序只有在第一个程序成功完成时才会运行(退出代码 == 0)。
PS:如果您仍然需要编译 C 代码,请使用gcc filename.c -lm
. 这-lm
将确保tanf
定义的数学库是链接的。
推荐阅读
- user-interface - 如何在 Flutter 中的网格视图末尾添加一个容器?
- google-sheets - 没有使用 min() 函数获得最低值
- angular - 如何在firestore文档中按字符串字段值的一部分进行搜索?
- android - CardView 内的布局重叠
- ota - Pycom gPy 上的 OTA
- python - pi上的python3 tkinter图像重新大小问题
- google-api - Pycharm:使用 gspread 将数据从串行写入 Google 工作表 - 不工作
- java - 使用运行时定义的配置按需实例化 Bean
- javascript - 如何在 Graphql 架构中定义日期数据类型?
- sqlite - 在flutter中显示从sqlite到simpledialog的数据