C语言编写一个Shell脚本,从1数到100,但只输出能被3或5整除的数。
时间: 2024-10-09 13:10:18 浏览: 60
在C语言中,我们通常编写shell脚本来通过bash命令来完成任务,而不是直接编写C程序。但是,你可以创建一个C程序来生成这样的文本文件,然后在shell脚本中读取并打印这个文件的内容。下面是一个简单的C程序,用于生成一个包含1到100之间能被3或5整除的数的文本文件:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *file = fopen("numbers.txt", "w");
if (file == NULL) {
perror("Failed to open file");
exit(EXIT_FAILURE);
}
for (int i = 1; i <= 100; i++) {
if (i % 3 == 0 || i % 5 == 0) {
fprintf(file, "%d\n", i);
}
}
fclose(file);
printf("Numbers written to numbers.txt successfully.\n");
return 0;
}
```
这个程序会创建一个名为"numbers.txt"的文件,里面包含了1到100之间的所有能被3或5整除的数字,每行一个。
接下来,你可以创建一个shell脚本(比如`print_numbers.sh`),内容如下:
```sh
#!/bin/bash
# Check if the C program exists and is executable
if ! [ -x "./numbers_generator.c" ]; then
echo "Error: Could not find or execute C program"
exit 1
fi
./numbers_generator.c
grep -E '3|5$' numbers.txt | while IFS= read -r line; do
echo $line
done
rm numbers.txt # Remove the temporary file after use
```
这个脚本首先检查C程序是否可用,然后运行C程序生成文件。接着,它使用`grep`过滤出能被3或5整除的数,逐行打印出来,最后删除临时文件。
阅读全文