我想将 shell 变量作为命令行参数传递给 C 程序。为了实践这一点,我编写了一个基本的 C 程序,如下所示:
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char **argv){
int i, a, prod=1 ;
if(argc==2)
a = atoi(argv[1]);
else
a = 8 ;
printf("value of cmd: %d\n",a);
for(i=1; i <= a ; i++)
prod *= i ;
printf("factorial %d!= %d\n",a, prod);
}
现在要通过 shell 脚本变量传递参数,我编写了一个小脚本,如下所示:
#!/bin/bash
echo "Welcome to the small shell scripting!!!"
for ((i=4; i<9;i++))
do
"../programming/ctest/arg $i"
done
其中../programming/ctest/arg是上述 C 程序的可执行文件。但是当我运行脚本输出是../programming/ctest/arg 4 no such file or directory等等。在没有 shell 变量的情况下运行它会给出正确的输出。请看一下,如果这个问题解决了,我会用它来进一步自动化