前言
通过利用for循环打印图形包括:正方形,矩形,直角三角形,等腰三角形,打印菱形和九九乘法表
一、命令
1.1 echo用法
echo -n:不换行输出
-e:支持反斜线控制的字符转换
转义:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab; #打空格
\v 与\f相同;
\ 插入\字符;
\nnn 插入nnn (八进制)所代表的ASCII字符;
1.2 seq命令
seq 1000 起始默认是1,间隔默认也是1
seq 2 1000 间隔默认是1
seq 1 3 10 从1到10,间隔为3,结果是:1 4 7 10
seq 1 10 从1开始,到10结束,间隔为1,结果是:1 2 3 … 10
二、图形打印项目
2.1 打印长方形
[root@server2 ~]# vi xz.sh
#!/bin/bash
# 打印图形
for ((i=1;i<=5;i++)) #控制行数,小于<=5行
do
for ((j=1;j<=5;j++)) #每行显示个数
do
echo -n "*" #满足条件显示“*”
done
echo #不满足条件的不显示
done
[root@server2 ~]# chmod +x xz.sh #增加可执行权限
2.2 打印正方形
跟长方形一样,只需要改变一个数值,echo -n ""显示增加一个空格echo -n " "
[root@server2 ~]# vi xz.sh
#!/bin/bash
# 打印图形
for ((i=1;i<=5;i++))
do
for ((j=1;j<=5;j++))
do
echo -n "* "
done
echo
done
[root@server2 ~]# chmod +x xz.sh #增加可执行权限
2.3 打印三角形
2.3.1
[root@server2 ~]# vi zj.sh
#!/bin/bash
# 打印直角三角形
for ((i=1;i<=9;i++)) #行数
do
for ((j=1;j<=$i;j++)) #每行显示个数
do
echo -n "*"
done
echo
done
[root@server2 ~]# chmod +x zj.sh
2.3.2
[root@server2 ~]# vi zj1.sh
#!/bin/bash
# 打印直角三角形2
for ((i=1;i<=9;i++)) ¥行数
do
for ((j=0;j<$i;j++)) #每行显示个数
do
echo -n " "
done
for ((k=10-$j;k>0;k--)) #每行显示个数
do
echo -n "*"
done
echo
done
[root@server2 ~]# chmod +x zj1.sh
2.3.3
[root@server2 ~]# vi dy.sh
#!/bin/bash
# 打印等腰三角形
for ((i=1;i<10;i++))
do
for ((n=10;n>=i;n--))
do
echo -n " "
done
for ((m=1;m<=i\*2-1;m++))
do
echo -n "*"
done
echo
done
[root@server2 ~]# chmod +x dy.sh
2.4 打印菱形
[root@server2 ~]# vi lx.sh
#!/bin/bash
# 打印菱形
read -p "请输入菱形长度" len
for i in `seq 1 $len`
do
for ((j=$len-1;j>=$i;j--))
do
echo -n " "
done
for ((m=1;m<=$i;m++))
do
echo -n "* "
done
echo
done
for i in `seq 1 $len`
do
for ((j=1;j<=$i;j++))
do
echo -n " "
done
for ((n=$len-1;n>=$i;n--))
do
echo -n "* "
done
echo
done
[root@server2 ~]# chmod +x lx.sh
2.5 打印9*9乘法表
2.5.1
[root@server2 ~]# vi ninel.sh
#!/bin/bash
# 9*9乘法表
for ((i=1;i<=9;i++))
do
for ((j=1;j<=i;j++))
do
echo -ne "$i*$j=$((i*j)) \t"
done
echo
done
[root@server2 ~]# chmod +x ninel.sh
2.5.2
修改for ((j=1;j<=i;j++))
为for ((j=1;j<=9;j++))