Linux 将C和python与Bash相结合
我有以下C代码: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;
#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