Shell脚本练习二部曲

Posted Zmac111

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell脚本练习二部曲相关的知识,希望对你有一定的参考价值。

1、九九乘法表

#!/bin/bash

for ((a=1;a<=9;a++))
do
  for((b=1;b<=a;b++))
  do
    ji=$[$a * $b]
    echo -ne "$a*$b=$ji\\t"
  done
    echo ""  #相当于换行符  
done

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

#!/bin/bash
OLDIFS=$IFS
IFS=$IFS:
for a in $PATH
do
 for b in $a/*
 do
  if [ -x $b ]
  then
    echo $b
  fi
 done
done

IFS=$OLDIFS

3、输出字符长为10的直线

#!/bin/bash
#直线
for i in {1..10}
do
  echo -n "*"
done
  echo ""

4、长为10,宽为5的矩形

#!/bin/bash
for b in {1..5}
do
  for i in {1..10}
  do
  echo -n "*"
  done
  echo ""
done

5、直角三角形(直角在左)

1

#!/bin/bash
for ((i=1;i<=9;i++))
do
  for ((b=1;b<=$i;b++))
  do
    echo -n "*"
  done
  echo ""
done

6、倒直角三角形(直角在左)

2

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

7、直角三角形(直角在右)

3

#!/bin/bash
for ((i=1;i<=9;i++))
do
  for ((j=9; j>=$i;j--))
  do
    echo -n " "  #这里是空格
  done

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

  echo ""
done

8、等腰三角形

4

方法1
#!/bin/bash
for ((i=1;i<=9;i++))  #输出行
do
  for ((j=9; j>=$i;j--))  #输出空格的倒三角形
  do
    echo -n " "
  done

  for ((k=1;k<=$i;k++))  #输出带“*”的三角形
  do
    echo -n "*"
  done
  for ((f=2;f<=$i;f++))  #输出带“*”的小三角形
  do
    echo -n "*"
  done
  echo ""
done

方法2
#!/bin/bash
for ((i=1;i<=9;i++))
do
  for ((j=9;j>=$i;j--))
  do
   echo -n " "
  done

  a=$[$i*2 -1]  # 规律是行数乘以21

  for k in `seq 1 $a`
  do
    echo -n "*"
  done
 echo ""
done

9、平行四边形

方法1

5
方法2

6

方法1
#!/bin/bash

for ((i=6;i>=1;i--))  for ((i=1;i<=6;i++))
do
   for ((k=1;k<=$i;k++))  for ((k=6;k>=$i;k--))
   do
     echo -n " "
   done
   for ((b=6;b>=1;b--))
   do
     echo -n "*"
   done
 echo ""
done


方法2
#!/bin/bash

for ((i=6;i>=1;i--))  for ((i=1;i<=6;i++))
do
   for ((k=6;k>=$i;k--))  for ((k=1;k<=$i;k++))
   do
     echo -n " "
   done
   for ((b=6;b>=1;b--))
   do
     echo -n "*"
   done
 echo ""
done

10、直角梯形

7

方法1
#!/bin/bash

for ((i=1;i<=6;i++))
do
   for ((k=6;k>=$i;k--))
   do
     echo -n " "
   done
   for ((b=1;b<=6;b++))
   do
     echo -n "*"
   done

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

方法2
#!/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

  for ((h=6; h>=$i;h--))
  do
    echo -n "*"
  done

  echo ""
done

方法3
#!/bin/bash

for ((i=1; i<=6;i++))
do
  for ((k=6; k>=$i;k--))
  do
    echo -n " "
  done

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

  echo ""
done

11、等腰梯形

8

方法1
#!/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

  for ((h=6; h>=$i;h--))
  do
    echo -n "*"
  done
  for ((g=6;g>$i;g--))
  do
    echo -n "*"
  done

  echo ""
done


方法2
#!/bin/bash
for ((i=1;i<=9;i++))
do
  for ((j=9;j>=$i;j--))
  do
   echo -n " "
  done

  a=$[$i*2 +5]  # 等腰三角形为减,等腰梯形为加

  for k in `seq 1 $a`
  do
    echo -n "*"
  done
 echo ""
done

以上是关于Shell脚本练习二部曲的主要内容,如果未能解决你的问题,请参考以下文章

Shell脚本高级编程实战第二部

shell脚本小练习

shell编程

shell脚本练习题

shell 脚本 片段

shell练习题