bashスクリプトを使用してCでプログラムを実行したいのですが、bashスクリプトでCのプログラムにいくつかの値を渡してもらいたいです。これは私のCコードです(非常に単純で、入力数学演算として読み取られます。例:2 + 3、それをファイルに保存します、そしてそれはすべてです):
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
int howMany = 0, i = 0;
float num1, num2;
char sign;
FILE *fp;
if((fp=fopen("operations.txt", "w"))==NULL)
{
exit(-1);
}
printf("How many math operations would you like to pass?\n> ");
scanf("%d", &howMany);
for(i=0; i<howMany; i++)
{
printf("Pass %d operations like this: {num1 sign num2}:\n> ", i+1);
scanf("%f %c %f", &num1, &sign, &num2);
fprintf(fp, "%f ", num1);
fprintf(fp, "%c ", sign);
fprintf(fp, "%f", num2);
if(i < howMany-1)
fprintf(fp, "\n");
}
fclose(fp);
return 0;
}
次に、bashスクリプトがあります。プログラムをCで実行し、1 + 2、3 + 4、... 9+10の9つの数学演算を実行します。私はこのようにしました:
#!/bin/bash
n=9
echo "$n" | ./app
for (( i=1; $i < 10; i++ )) ; do
let "c=$i+1"
echo $i "+" $c | ./app
done
しかし、私が望むように動作しないという問題があります。助けてください-このbashスクリプトだけで、私のCプログラムはうまく機能します。