我试图在 linux 中运行一个脚本来运行一个 c 程序 脚本如下
#!/bin/bash
`gcc odd.c -o odd222`
`chmod +x odd222`
echo `./odd222`
而 odd.c 是
main()
{
int i;
printf("enter the no.");
scanf("%d",&i);
printf("shiv");
}
但问题是,当我运行这个脚本时,所有的 scanf 语句都被执行,然后所有的输出都显示出来......
如果我没有在 ./odd222
之前放置 echo,那么它会提示错误输入命令未找到(“输入”printf 中的第一个元素。
请帮助我
最佳答案
去掉反引号、chmod 和 echo
。您需要做的就是运行 gcc
,然后运行您的程序。
#!/bin/bash
gcc odd.c -o odd222
./odd222
最好只在程序编译成功后才尝试运行该程序。您可以使用 &&
使其成为有条件的。
#!/bin/bash
gcc odd.c -o odd222 && ./odd222
最好修改您的 C 代码以确保立即打印输出。输出通常是行缓冲的,这意味着它只会在您写完一整行并在末尾添加换行符 \n
时显示。您需要打印换行符:
printf("enter the no.\n");
或者显式刷新输出:
printf("enter the no.");
fflush(stdout);
关于c - 运行c程序的linux脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19025763/