前言
shell 是操作系统的最外层。shell 合并编程语言以控制进程和文件,以及启动和控制其它程序。shell 通过提示您输入,向操作系统解释该输入,然后处理来自操作系统的任何结果输出来管理您与操作系统之间的交互。下面我们用shell编写一个九九乘法表跟等边三角形,体现一下shell脚本的魅力,希望对你有所帮助哦。
一:使用shell制作三角形
[root@localhost opt]# vim sanjiao.sh
#!/bin/bash
read -p "请输入行号:" line
read -p "请输入符号:" char
a=1 '定义初始值'
while [ $a -le $line ] '定义打印行数'
do
b=1 '定义符号初始值'
while [ $b -le $a ]
do
echo -n "$char" '-n指的是不换行输出'
b=`expr $b + 1`
done
echo
a=`expr $a + 1`
done
[root@localhost opt]# sh sanjiao.sh
请输入行号:3
请输入符号:*
*
**
***
[root@localhost opt]# sh sanjiao.sh
请输入行号:4
请输入符号:*
*
**
***
****
二:使用shell制作等边三角形
分析:
1.外层控制输出几行
2:内层循环1:每行输出空格的个数
内行循环2:每行输出的*个数
每行*个数:2n-1
每行空格个数:总行数-当前的行号
[root@localhost opt]# vim zheng.sh
#!/bin/bash
read -p "获取行号:" Line
for ((i=1; i<=Line; i++)) '使用行号控制一共循环次数'
do
for ((k=$Line-$i; k>0; k--)); '指定每一行输出的空格。第一行需要输出2个空格,第二行需要输出1个,第三行输出0个空格。得出结论空格数等于:总行数Line-当前行号'
do
echo -n ' '
done
for ((h=1; h<=$((2*$i-1)); h++)); '第一行一个* 第二行两个* :当前行号*2-1'
do
echo -n '*' '输出内容不换行'
done
echo
done
[root@localhost opt]# sh zheng.sh
获取行号:3
*
***
*****
[root@localhost opt]# sh zheng.sh
获取行号:4
*
***
*****
*******
[root@localhost opt]# sh zheng.sh
获取行号:5
*
***
*****
*******
*********
三:九九乘法表
[root@localhost opt]# vim hua.sh
#!/bin/bash
#九九乘法表
i=1
while [ $i -le 9 ]
do
for ((j=1;j<=$i;j++))
do
echo -en "\t $i x $j = `expr $i \* $j` "
done
let i++
echo ""
done
[root@localhost opt]# sh hua.sh
1 x 1 = 1
2 x 1 = 2 2 x 2 = 4
3 x 1 = 3 3 x 2 = 6 3 x 3 = 9
4 x 1 = 4 4 x 2 = 8 4 x 3 = 12 4 x 4 = 16
5 x 1 = 5 5 x 2 = 10 5 x 3 = 15 5 x 4 = 20 5 x 5 = 25
6 x 1 = 6 6 x 2 = 12 6 x 3 = 18 6 x 4 = 24 6 x 5 = 30 6 x 6 = 36
7 x 1 = 7 7 x 2 = 14 7 x 3 = 21 7 x 4 = 28 7 x 5 = 35 7 x 6 = 42 7 x 7 = 49
8 x 1 = 8 8 x 2 = 16 8 x 3 = 24 8 x 4 = 32 8 x 5 = 40 8 x 6 = 48 8 x 7 = 56 8 x 8 = 64
9 x 1 = 9 9 x 2 = 18 9 x 3 = 27 9 x 4 = 36 9 x 5 = 45 9 x 6 = 54 9 x 7 = 63 9 x 8 = 72 9 x 9 = 81
方法2
[root@localhost opt]# vim hua2.sh
#!bin/bash
for((i=1;i<=9;i++))
do
for((k=1;k<=i;k++))
do
let "s=i*k"
echo -ne "$i*$k=$s\t"
done
echo ""
done
echo "end"
[root@localhost opt]# sh hua2.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
感谢观看