编写Shell脚本,打印给定行数的*号,第一行打印一个,第二行打印4个,每行递增3个,行数由用户在命令行上输入。
时间: 2024-02-24 13:00:15 浏览: 102
好的,下面是Shell脚本的代码:
```bash
#!/bin/bash
if [ $# -eq 0 ]; then
echo "请输入行数作为参数!"
exit 1
fi
for (( i=1; i<=$1; i++ ))
do
for (( j=1; j<=4+(i-1)*3; j++ ))
do
echo -n "*"
done
echo ""
done
```
这个脚本中,首先进行了参数判断,如果没有输入行数则会提示用户输入并退出脚本。然后使用两个 for 循环来控制行数和每行打印的 * 号数量,其中内层循环的打印次数会随着行数的递增而逐渐增加。最后使用 echo 命令输出打印结果。
相关问题
用c编写Shell脚本,打印给定行数的*号,第一行打印一个,第二行打印4个,每行递增3个,行数由用户在命令行上输入。
好的,以下是用c编写的Shell脚本代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
if (argc != 2) {
printf("Usage: ./print_star <num_lines>\n");
return 1;
}
int num_lines = atoi(argv[1]);
int num_stars = 1;
for (int i = 0; i < num_lines; i++) {
for (int j = 0; j < num_stars; j++) {
printf("*");
}
printf("\n");
num_stars += 3;
}
return 0;
}
```
用户输入命令行参数,程序将其转换为整数并存储在`num_lines`变量中。然后,使用`for`循环逐行打印星号。每一行的星号数量递增3个,从1开始。内层循环使用`printf`函数将星号打印到控制台上,外层循环则用于控制行数。
在Linux中用c编写Shell脚本,打印给定行数的*号,第一行打印一个,第二行打印4个,每行递增3个,行数由用户在命令行上输入。
可以使用以下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。
阅读全文