Linux 将C和python与Bash相结合

Linux 将C和python与Bash相结合,linux,bash,Linux,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;

我有以下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);
}
C代码生成保存在文本文件中的数据。python代码读取该文本文件并绘制一个绘图。绘制绘图后,python将删除数据文件

我需要制作一个bash文件来执行这两段代码,就像胶水一样。我已经阅读了关于bash的教程,但我仍然不清楚如何编译和执行C以及如何运行python


问:如何制作一个在linux中运行这两段代码的bash文件?

一旦将C程序编译成可执行文件(二进制),这就非常简单了。假设您的C程序生成可执行的
,并且您的python脚本名为
plot.py

#!/bin/bash
./table && python plot.py
这将按顺序运行这两个程序。
&&
意味着只有第一个程序成功完成(退出代码==0),第二个程序才会运行


PS:如果您仍然需要编译C代码,请使用
gcc filename.C-lm
-lm
将确保定义了
tanf
的数学库已链接。

谢谢!我调用了我的C函数table.C和python3程序plot.py。编译C程序时,我得到一个名为“table”的新文件。那是可执行文件吗?因此,我的bash文件必须包含“table.out&&python3 plot.py”@Terr070,bash脚本基本上与您逐个键入命令相同。注意,除非您明确告诉shell(bash),否则它不会执行当前目录中的文件。这是因为当前目录不在$PATH中。“/table.out”就足够了。另外,您需要
chmod+x{scriptname}
来“设置可执行标志”。这会告诉shell您打算将文件作为脚本执行。
#!/bin/bash
./table && python plot.py