编写一个Shell脚本,找出100以内所有能被3整除的数,每行显示7个数,然后换行显示。
时间: 2024-02-09 22:12:15 浏览: 113
好的,以下是脚本的代码:
```shell
#!/bin/bash
count=0
for i in {1..100}
do
if [ $((i%3)) -eq 0 ]; then
echo -n "$i "
count=$((count+1))
if [ $((count%7)) -eq 0 ]; then
echo ""
fi
fi
done
echo ""
```
解释一下代码:
- `count` 变量用来统计当前已经输出了多少个符合条件的数。
- `for` 循环遍历 1 到 100 中的所有数字。
- `if` 判断当前数字是否能被 3 整除,如果是,就输出这个数字并将 `count` 加 1。
- 每输出 7 个数字,就打印一个换行符。
相关问题
编写一个Shell脚本,找出100以内所有能被3整除的数,每行显示7个数,然后换行显示
好的,以下是脚本的代码:
```shell
#!/bin/bash
count=0 # 计数器,每输出7个数后换行
for (( i=1; i<=100; i++ ))
do
if (( i%3 == 0 )) # 如果能被3整除
then
echo -n "$i " # 输出数字,不换行
(( count++ )) # 计数器加1
if (( count == 7 )) # 如果输出了7个数
then
echo # 换行
count=0 # 计数器清零
fi
fi
done
# 如果最后一行不足7个数,也要换行
if (( count != 0 ))
then
echo
fi
```
这个脚本使用了一个 `for` 循环来遍历 1 到 100 的所有数字,用 `if` 判断是否能被 3 整除,如果是就输出这个数字,并且计数器加1。每输出 7 个数字就换行,最后如果最后一行不足 7 个数字,也要换行。
编写一个shell脚本,找出100以内所有能被3整除的数,每行显示7个数,然后换行显示
好的,以下是一个实现的示例:
```
#!/bin/bash
# 循环 1 到 100
for i in {1..100}; do
# 如果是 3 的倍数
if [ $((i % 3)) -eq 0 ]; then
# 输出当前数
printf '%-4d' $i
# 如果当前行已经显示了 7 个数,则换行
if [ $((i % 21)) -eq 0 ]; then
echo
fi
fi
done
# 最后一行也要换行
echo
```
以上脚本使用了 `for` 循环遍历 1 到 100 的数,然后使用取模运算判断当前数是否是 3 的倍数,并使用 `printf` 函数输出当前数。同时,使用 `if` 判断是否需要换行,每行显示 7 个数。
你可以将其保存为一个文件,比如 "threes.sh",然后在终端中运行:
```
$ bash threes.sh
```
输出结果应该类似于:
```
3 6 9 12 15 18 21
24 27 30 33 36 39 42
45 48 51 54 57 60 63
66 69 72 75 78 81 84
87 90 93 96 99
```
阅读全文