Kevin_306

06-SHELL脚本编程基础-for循环 20210405 (九)

循环执行介绍:for循环

 

 #help for

 

  for 举例  

[root@centos8-kevin306 ~]#for i in 1 2 3 4;do echo i=$i;done
i=1
i=2
i=3
i=4

#Rocky中

格式1:

for NAME [in WORDS ... ] ; do COMMANDS; done

for 变量名  [ in 列表 ];do
    循环体
done

for 变量名  [ in 列表 ] do
    循环体
done

执行机制: 依次将列表中的元素赋值给“变量名”; 每次赋值后即执行一次循环体; 直到列表中的元素耗尽,循环结束

范例:面试题,计算1+2+3+...+100的结果

[root@centos8 ~]# sum=0;for i in {1..100};do let sum+=i;done ;echo sum=$sum 
sum=5050

或者

[root@centos8 ~]# seq -s+ 100|bc
5050

范例:99乘法表

1.vim 99.bash

2.先写出行的显示方法

#!/bin/bash 
for i in {1..9};do
echo $i
done 

3.bash 99.sh (#先打印9行)

4.行号就是打印的公式的个数

    j代表公式的列

5.bash 99.sh,打印j

6.j表示列,打印出来了,但是没有换行,修改如下

此处科普一下echo相关知识,echo可以将你输入的内容进行显示,可以加参数,显示参数标准输出显示,并且自动换新行

Options:

-n do not append a newline     (-n 加上-n就是不换行)

-e enable interpretation of the following backslash escapes   (-e 启用反斜杠转义解释 示例:echo -e '\a' 警报声 '\a' 加引号)

-E explicitly suppress interpretation of backslash escapes  (-E 禁用反斜杠转义解释)

`echo' interprets the following backslash-escaped characters: (“echo”解释以下反斜杠-转义字符:)
          \a alert (bell) 警报声提醒

          \c suppress further output 压缩之后的输出 压缩掉echo的换行

          \n new line 换新行 本身echo就带有换行,再加\n表示换两行

          \t horizontal tab   水平制表符

          \v vertical tab   垂直制表符

for i in {1..9};do
    for j in `seq $i`;do
        echo -e  "$j\c"  (#此处加-e \c表示不用换行)
    done
    echo  (#此处整个列打印结束需要换行)
done

7.修改换行问题后执行看效果,初具图形

8.计算公式写入

for i in {1..9};do
     for j in `seq $i`;do
          echo -e "jxi=$[j*i]\c"
     done
     echo
done

9.再次执行看结果,有模有样了,不过忘记添加变量了

10.变量加上$符号,同时加上{}确定变量边界,

11.再次执行看修改的效果,变量有了,但是没有空格隔开,连在一起了

12.\c前加空格隔开

13.修改的效果再次展示,隔开了,但是不完美,还没有对齐

14.使用teb键,对齐

 

最后就成型了,脚本是一点点的不断拼成的,不断完善的。

代码如下:

#语法1实现 
for i in {1..9};do
    for j in `seq $i`;do
        echo -e "${j}x$i=$((j*i))\t\c"
    done 
    echo
 done  

 其他脚本:国际象棋棋盘

代码:

 

圣诞树:

代码:

 

posted on 2021-04-05 13:43  熊猫小虾  阅读(128)  评论(0编辑  收藏  举报

导航