Shell脚本之双循环

双循环

#!/bin/bash

for ((a=1; a<=5; a++))
do
        echo "外部循环:a=$a"
        for ((b=1; b<=10; b++))
        do
                if [ $b -gt 5  ];then
                        break  跳出当前内循环
                fi
                echo -e "\t内部循环:b=$b"
        done
done

在这里插入图片描述

#!/bin/bash

for ((a=1; a<=5; a++))
do
        echo "外部循环:a=$a"
        for ((b=1; b<=10; b++))
        do
                if [ $b -gt 5  ];then
                        break 2   跳出2层循环
                fi
                echo -e "\t内部循环:b=$b"
        done
done

在这里插入图片描述

#!/bin/bash

for ((a=1; a<=5; a++))
do
        echo "外部循环:a=$a"
        for ((b=1; b<=10; b++))
        do
                if [ $b -eq 5  ];then
                continue
                fi
                echo -e "\t内部循环:b=$b"
        done
done

在这里插入图片描述

九九乘法表

#! /bin/bash
for ((a=1;a<=9;a++))
do
        for((b=1;b<=a;b++))
        do
        sum=$[$a * $b ]
        echo -ne "$a*$b=$sum\t"

        done
        echo  
done

在这里插入图片描述

输出 $PATH 中包含的目录和文件

#!/bin/bash

OLDIFS=$IFS
#IFS=$': '
IFS=$IFS:
savePath="/opt/executFile.txt"
echo "" > $savePath
for docm in `echo $PATH`
do
        echo "当前目录:$docm 下的可执行文件正在写入 $savePath 文件中"
        for file in $docm/*
        do
                if [ -x $file ];then
                        echo -e "$file" >> $savePath
                fi
        done
done

IFS=$OLDIFS

#验证 cat /opt/executFile.txt | more

设置矩形

#!/bin/bash

for (( a=1;a<=9;a++ ))
do
        for (( c=1;c<=9;c++ ))
        do
                echo -n "*"
        done
        echo ""
done

在这里插入图片描述

输出正三角形

#!/bin/bash

for ((i=1;i<=9;i++))
do
	for ((j=1;j<=$i;j++))
	do
		echo -n "*"
	done
	echo ""
done

echo ""

在这里插入图片描述

等腰三角形

#!/bin/bash
for ((i=1;i<=9;i++))  #输出的行数
do
        for ((j=9;j>$i;j--))  #空心的倒三角
        do
                echo -n " "   #输出空格,每行输出的空格数会-1
        done
        for ((k=1;k<=$i;k++)) #正三角
        do
                echo -n "*"
        done
        for ((x=2;x<=$i;x++))  #反三角
        do
                echo -n "*"
        done
        echo ""
done

在这里插入图片描述

平行四边形

#!/bin/bash

for ((i=6;i>=1;i--))
do
        for ((k=1;k<=$i;k++))    #空格从多到少 / 方向的平行四边形
        #for ((k=1;k<=6-$i;k++)) #空格从少到多 \ 方向的平行四边形
        do
               echo -n " "
        done

        for ((j=6; j>=1;j--)) #输出6*6矩形
        do
                echo -n "*"
        done
        echo ""
done

在这里插入图片描述

等腰梯形

#!/bin/bash

for ((i=6;i>=1;i--))
do
        for ((k=1;k<=$i;k++)) #空格从多到少
        #for ((k=1;k<=6-$i;k++))
        do
                echo -n " "
        done
        for ((j=6; j>=1;j--)) #输出6*6矩形
        do
                echo -n "*"
        done
        
        #加上正三角
        #得到表达式 第一行加1 第二行加3 第三行加5...
        exp=$[(5-$i)*2+3]
        for t in `seq 1 $exp`
        do
                echo -n "*"
        done
        echo ""
done

在这里插入图片描述

菱形

#!/bin/bash

for (( a=1;a<=9;a++ ))
do
        for (( b=9;b>$a;b-- ))
        do
                echo -n " "
        done
        d=$[($a*2)-1]
        for k in $(seq 1 $d)
        do
                echo -n "*"
        done
        echo ""
done
for (( a=1;a<=8;a++ ))
do
        for (( c=1;c<=$a;c++ ))
        do
                echo -n " "
        done
        b=$[(8-$a)*2+1]
        for d in $(seq 1 $b)
        do
                echo -n "*"
        done
        echo ""
done

在这里插入图片描述

输入数字改变菱形的大小

#!/bin/bash
read -p "输入数字:" q
for (( a=1;a<$q;a++ ))
do
        for (( b=$q;b>=$a;b-- ))
        do
                echo -n " "
        done
        d=$[($a*2)-1]
        for k in $(seq 1 $d)
        do
                echo -n "*"
        done
        echo ""
done
for (( a=1;a<=$q;a++ ))
do
        for (( c=1;c<=$a;c++ ))
        do
                echo -n " "
        done
        b=$[($q-$a)*2+1]
        for d in $(seq 1 $b)
        do
                echo -n "*"
        done
        echo ""
done

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值