ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

shell双重循环、IFS分隔符、趣味图形、九九乘法表

2021-08-01 18:32:21  阅读:239  来源: 互联网

标签:do shell IFS -- echo 九九乘法 done bash


shell双重循环、IFS分隔符、趣味图形、九九乘法表

一、shell脚本值双重循环

1、跳出循环之break命令

for ( (a=1; a<=5; a++) )
do
   echo "outer loop: $a"
   for ( (b=1; b<=50; b++) )
   do
       if [ $b-eq 5 ]
       then
        break           #如果是break 2则代表跳出2层循环
       if
       echo "inter loop: $b"
  done 
done

 2、中止循环之continue命令

  • continue中止某次循环中的命令,但不会完全中止整个命令

for ((a=1; a<=15; a++) )
do
   if [ $a -gt 5 ] && [ $a -lt 10 ]
   then
   continue
   fi
   echo "current value: $a"
done

 continue和exit的区别

 

 二、IFS分隔符

1、概述

  • 默认包含空格,制表符,换行符
  • 用 set | grep IFS 命令查看

 2、格式

IFS=$' \t\n'
#修改成只换行
IFS=$' \n'
IFS=:
IFS=','

IFS. OLD=$IFS
IFS=$' \n'
...
IFS=$IFS.OLD

 3、示例

(1)换行符确认

(2)输出环境变量PATH所包含的所有目录以及其中的所有可执行文件

三、shell趣味图形

1、直线

#!/bin/bash
for ((a=1;a<=20;a++))
do
  echo -n "*"
done
  echo ""

 2、矩形

#!/bin/bash

for ((a=1;a<=10;a++))
do
  for ((b=1;b<=15;b++))
  do
  echo -n "*"
  done

 echo ""
done

 3、正三角形

#!/bin/bash

a=0

while [ $a -le 9 ]
do
   echo -n "*"
b=1
   while [ $b -le $a ]
do
   echo -n "*"
   let b++
done
   echo ""
   let a++
done

 4、倒三角形

#!/bin/bash

a=0

while [ $a -le 9 ]
do
b=8
   while [ $b -ge $a ]
   do
    echo -n "*"  
    let b--
   done
    echo -n "*"
    echo ""
    let a++
done

 5、反三角

#!/bin/bash

a=0

while [ $a -le 9 ]
do
   b=9
   while [ $b -ge $a ]
   do
   echo -n " "
   let b--
   done
   c=0
   while [ $c -le $a ]
   do
   echo -n "*"
   let c++
   done
   echo  ''
   let a++
done

 6、等腰三角

#!/bin/bash

for ((a=1;a<=9;a++))
do
   for ((b=9;b>=$a;b--))
   do
      echo -n " "
   done

   for ((c=1;c<=$[$a*2-1];c++))
   do
      echo -n "*" 
   done
   echo ""
done

 7.平行四边形

#!/bin/bash
for ((i=6;i>=1;i--))
do
 for((k=1;k<=i;k++))
 do
   echo -n " "
 done
  for (( j=6;j>=1;j--))
   do
      echo -n "*"
   done
    echo ""
done

 8、等腰梯形

#!/bin/bash
for ((a=1;a<=9;a++))
do
    for ((b=9;b>=$a;b--))
    do
       echo -n " "
    done
    for ((c=1;c<=9;c++))
    do
       echo -n "*"
    done
    for ((d=1;d<=$[$a*2-1];d++))
    do
       echo -n "*"
    done
    echo ""
done

 9、菱形

(1)不可变菱形

#!/bin/bash
for ((a=1;a<=9;a++))
do
  for ((b=9;b>=$a;b--))
  do
     echo -n " "
  done
  for ((c=1;c<=$[$a*2-1];c++)) 
  do
     echo -n "*"
  done
     echo ""
done

for ((d=1;d<=10;d++))
do
  for ((e=2;e<=$d;e++))
  do
      echo -n " "
  done
  for ((f=10;f>=$d;f--)) 
  do 
      echo -n "*"
  done
  for ((g=9;g>=$d;g--))
  do
      echo -n "*"
  done

 echo ""
done 

 

 (2)可变大小的菱形

#!/bin/bash

read -p "请输入数字: " i

for ((a=1;a<=$i;a++))
do
   for ((b=$i;b>=$a;b--))
   do
       echo -n " "
   done
   for ((c=1;c<=$[2*a-1];c++))
   do
       echo -n "*"
   done
   echo ""
done

for ((d=$i-1;d>=1;d--))
do
    for ((e=$i;e>=$d;e--))
    do
        echo -n " "
    done
    for ((f=$d;f>=1;f--))
    do
    echo -n "*"
    done
    for ((g=$d;g>1;g--))
    do
    echo -n "*"
done
echo ""
done

 

 

四、九九乘法表

#!/bin/bash

for ((a=1;a<=9;a++)) # 1~9循环
do
  for ((b=1;b<=$a;b++))  # 内循环b的值不能超过a
  do 
  c=$[$a*$b]   # a*b等于1*1,2*2
  echo -n -e  "$a*$b=$c\t"   # 输出c的值不换行显示,以及每行空格间隔\t 

  done
echo ""   # 默认隐藏了换行符 \n

done

标签:do,shell,IFS,--,echo,九九乘法,done,bash
来源: https://www.cnblogs.com/yhtweirdo/p/15073193.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有