gpt4 book ai didi

c - 如何在 C 程序中将 shell 变量作为命令行参数传递

转载 作者:太空宇宙 更新时间:2023-11-04 02:58:22 26 4
gpt4 key购买 nike

我想将 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 变量的情况下运行时它提供了正确的输出。请看一下,如果这个问题解决了我会用它来进一步自动化

最佳答案

"../programming/ctest/arg $i"

先生,您需要删除引号

../programming/ctest/arg $i

具体来说,在不删除引号的情况下,Bash 会将整个字符串解释为命令,而不是像您预期的那样解释命令和参数。

关于c - 如何在 C 程序中将 shell 变量作为命令行参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14925434/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com