转义字符的含义
echo -n:不换行输出
-e:支持反斜线控制的字符转换
转义:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符
例子
打印图形
[root@server1 ~]# vim tuxing.sh
#!/bin/bash
#打印图形
for ((i=1;i<=6;i++))
do
for((j=1;j<=5;j++))
do
echo -en "*\t"
done
echo
done
[root@server1 ~]# ./tuxing.sh
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
双重循环
打印正方形
[root@server1 ~]# vim zhengfangxing.sh
#!/bin/bash
#打印正方形
for ((i=1;i<=6;i++))
do
for ((j=1;j<=6;j++))
do
echo -n "* "
done
echo
done
[root@server1 ~]# ./zhengfangxing.sh
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
打印直角三角形
方法一:
[root@server1 ~]# vim zhijiaosanjiaoxing.sh
#!/bin/bash
#打印直角三角形
for ((i=1;i<=9;i++))
do
for ((j=1;j<=i;j++))
do
echo -n "* "
done
echo
done
[root@server1 ~]# ./zhijiaosanjiaoxing.sh
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * *
[root@server1 ~]#
方法二:
#!/bin/bash
#打印直角三角形2
i=1
while [ $i -lt 10 ]
do
j=1
while [ $j -le $i ]
do
echo -n x
j=$(($j+1))
done
echo
i=$(($i+1))
done
[root@server1 ~]# ./zhijiao2.sh
x
xx
xxx
xxxx
xxxxx
xxxxxx
xxxxxxx
xxxxxxxx
xxxxxxxxx
打印反直角三角形
[root@server1 ~]# vim fanzhijiao.sh
#!/bin/bash
#打印反直角三角形
for ((i=1;i<=9;i++))
do
for ((j=10-$i;j>0;j--))
do
echo -n "*"
done
echo
done
[root@server1 ~]# chmod +x fanzhijiao.sh
[root@server1 ~]# ./fanzhijiao.sh
*********
********
*******
******
*****
****
***
**
*
打印反直角三角形1
[root@server1 ~]# vim fanzhijiao1.sh
#!/bin/bash
#打印反直角三角形1
for ((i=1;i<=9;i++))
do
for ((j=1;j<$i;j++))
do
echo -n " "
done
for ((k=10-$j;k>0;k--))
do
echo -n "*"
done
echo
done
[root@server1 ~]# chmod +x fanzhijiao1.sh
[root@server1 ~]# ./fanzhijiao1.sh
*********
********
*******
******
*****
****
***
**
*
打印反直角2
[root@server1 ~]# vim fanzhijiao2.sh
#!/bin/bash
#打印反直角三角形2
for ((i=1;i<=9;i++))
do
for ((j=9-i;j>=0;j--))
do
echo -n " "
done
for ((k=1;k<=$i;k++))
do
echo -n "*"
done
echo
done
[root@server1 ~]# chmod +x fanzhijiao2.sh
[root@server1 ~]# ./fanzhijiao2.sh
*
**
***
****
*****
******
*******
********
*********
打印等腰三角形
[root@server1 ~]# vim dengyaosanjiaoxing.sh
#!/bin/bash
#打印直角三角形
for ((i=1;i<=9;i++))
do
for ((j=1;j<$i;j++))
do
echo -n " "
done
for ((k=10-$j;k>0;k--))
do
echo -n "* "
done
echo
done
[root@server1 ~]# chmod +x dengyaosanjiaoxing.sh
[root@server1 ~]# ./dengyaosanjiaoxing.sh
* * * * * * * * *
* * * * * * * *
* * * * * * *
* * * * * *
* * * * *
* * * *
* * *
* *
*
打印等腰三角形1
[root@server1 ~]# vim dengyaosanjiaoxing1.sh
#!/bin/bash
#打印等腰三角形1
for ((i=1;i<=9;i++))
do
for ((j=8;j>=i;j--))
do
echo -n " "
done
for ((k=1;k<=i;k++))
do
echo -n "* "
done
echo
done
[root@server1 ~]# chmod +x dengyaosanjiaoxing1.s
[root@server1 ~]# ./dengyaosanjiaoxing1.sh
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * *
打印菱形
[root@server1 ~]# vim lingxing.sh
[root@server1 ~]# chmod +x lingxing.sh
[root@server1 ~]# ./lingxing.sh
请输入菱形长度:9
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * *
* * * * * * * *
* * * * * * *
* * * * * *
* * * * *
* * * *
* * *
* *
*
9*9乘法表
[root@server1 ~]# vim 9*9.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@server1 ~]# chmod +x 9\*9.sh
[root@server1 ~]# ./9\*9.sh
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
9*9乘法表1
[root@server1 ~]# vim 9*91.sh
#!/bin/bash
#打印9*9乘法表1
for ((i=1;i<=9;i++))
do
for ((j=1;j<=9;j++))
do
echo -ne "$i*$j=$(($i*$j)) \t"
done
echo
done
[root@server1 ~]# chmod +x 9\*91.sh
[root@server1 ~]# ./9\*91.sh
1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9
2*1=2 2*2=4 2*3=6 2*4=8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18
3*1=3 3*2=6 3*3=9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27
4*1=4 4*2=8 4*3=12 4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 5*6=30 5*7=35 5*8=40 5*9=45
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 6*7=42 6*8=48 6*9=54
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 7*8=56 7*9=63
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 8*9=72
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
[root@server1 ~]#
seq的用法
seq 1000 #起始默认是1,间隔也是1
seq 2 1000 #从2开始,间隔默认是1
seq 1 3 10 #起始是1,间隔是3,结果是1、4、7、10
seq 1 10 #从1开始,到10结束,间隔为1,结果是1、2、。。。、10