在Linux中用c编写Shell脚本,打印给定行数的*号,第一行打印一个,第二行打印4个,每行递增3个,行数由用户在命令行上输入。
时间: 2024-02-25 13:53:02 浏览: 109
可以使用以下C语言代码编写Shell脚本:
```c
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char *argv[]) {
int n, i, j, k;
if (argc != 2) {
printf("Usage: %s <number of lines>\n", argv[0]);
return 1;
}
n = atoi(argv[1]);
if (n <= 0) {
printf("Invalid number of lines: %d\n", n);
return 1;
}
for (i = 1, k = 1; i <= n; i++, k += 3) {
for (j = 0; j < k; j++) {
printf("*");
}
printf("\n");
}
return 0;
}
```
其中,`argc` 表示命令行参数的个数,`argv` 是一个字符串数组,存储了命令行参数的值。在本例中,需要传入一个参数,即行数。
首先,检查命令行参数是否正确。如果参数个数不为 2,即只传入了可执行文件名,就输出使用方法并返回 1。如果行数小于等于 0,也输出错误信息并返回 1。
然后,使用两个嵌套的循环,分别控制行数和每行的星号个数。星号的个数从 1 开始,每行递增 3 个。每行输出完毕后,记得要换行。
最后,返回 0。
阅读全文