#1.99乘法表 for i in `seq 1 9` do for j in `seq 1 $i` do echo -n "$j×$i=$(($i*$j)) " done echo"" done
#2.拼接一个直角三角形 for i in `seq 1 5` do for j in `seq 1 $i` do echo -n "*" done echo" " done
#3.上个练习基础上拼接一个等腰三角形 for i in `seq 1 5` do for k in `seq 1 $((5-$i))` do echo -n " " done for j in `seq 1 $(($i*2-1))` do echo -n "*" done echo" " done
#4.上个练习基础上拼接一个菱形 for i in `seq 1 9` do if [ $i -le 5 ] then for k in `seq 1 $((5-$i))` do echo -n " " done for j in `seq 1 $(($i*2-1))` do echo -n "*" done echo" " else for n in `seq 1 $(($i-5))` do echo -n " " done for m in `seq 1 $(((10-$i)*2-1))` do echo -n "*" done echo" " fi done
#5.打印输出100至200之间的全部素数,输出素数并统计共有多少个素数。 注:质数(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数。 for i in `seq 100 200` do n=$(($i-1)) for j in `seq 2 $n` do if [ $(($i%$j)) -eq 0 ] thenbreak elif [ $j -eq $n ] then echo"$i" count=$(($count+1)) fi done done echo"共有$count个素数"
#2.编写函数,传递一个数字参数5,实现1到5的累加,返回和,输出"和是:15" getSum(){ for i in `seq 1 $1` do sum=$(($sum+$i)) done echo"和是:$sum" }
#3.编写函数,当该函数没有参数或参数多于2个, 输出-1,只有一个参数时, 输出1,有两个参数 时, 输出2 提示:使用$#判断参数的个数 countNum(){ if [ $# -eq 1 -o $# -eq 2 ] then echo"$#" else echo"-1" fi }
#4.编写函数,实现传入一个目录参数,将该目录下(递归)所有的文件都打印出来(遇到文件则打印,遇到目录则继续调函数递归) getFile(){ names=`ls$1` for i in$names do if [ -f $1/$i ] then echo"$1/$i" elif [ -d $1/$i ] then getFile $1/$i fi done }
#5.编写函数,传入一个数字n,实现n的阶乘,效果如下: jiecheng(){ txt="$1!=$1" res=1 for i in `seq$1 -1 1` do if [ $i -ne $n ] then txt=$txt*$i fi res=$(($res*$i)) done
echo"根据数字$1得到阶乘表达式是:$txt=$res" } read -p "请输入数字:" n jiecheng $n