Linux 金字塔 的shell命令,shell脚本编程设计——根据输入的数输出菱形、三角形或者数字金字塔(带闪烁颜色)...

shell脚本编程设计——根据输入的数输出菱形、三角形或者数字金字塔(带闪烁颜色)

shell脚本程序和解释如下

#!/bin/bash

#创建死循环,当输入出错或者输入"quit"字符串退出脚本程序

while true

do

#等待用户输入

read -p "请输入一个不大于20的正整数(输入"quit"则退出):" n

#先判断字符串是否是quit

if [ "$n" == "quit" ]

then

echo "您选择退出"

exit 0

fi

#判断输入的是否为数字,不是则错误结束脚本程序

if [[ $n =~ ^[0-9]+$ ]]

then

:

else

echo "sorry you input no a number!"

exit 1

fi

#判断输入的数是否大于20,大于则跳出本次循环,进入下次循环

if [ $n -gt 20 ]

then

echo "您输入的数字太大,我可能执行不了"

continue

#说明输入的数不大于20,判断其为奇数还是偶数

elif [[ $n%2 -eq 1 ]] #判断是否为奇数

then

echo "您输入的是个奇数"

echo "将显示出n行由*组成的菱形"

let half=(n+1)/2

let otherhalf=half-1

#echo $half

for i in `seq 1 $half`

do

for ((j=$half;j>i;j--))

do

echo -n " "

done

for m in `seq 1 $i`

do

echo -ne "\033[5;34m* \033[0m"

done

echo

done

for i in `seq 1 $otherhalf`

do

for m in `seq $i`

do

echo -n " "

done

for ((j=$otherhalf;j>=i;j--))

do

echo -ne "\033[5;34m* \033[0m"

done

echo

done

else

echo "您输入的是个偶数" #说明输入的是个不大于20的偶数

#判断该偶数是否小于10

if [ $n -lt 10 ]

then

for i in `seq 1 $n`

do

for ((j=$n;j>i;j--))

do

echo -ne " "

done

for m in `seq 1 $i`

do

echo -ne "\033[1;36m$i\033[0m "

done

echo

done

#说明该不大于20的偶数也不小于10

else

for i in `seq 1 $n`

do

for ((j=$n;j>i;j--))

do

echo -n " "

done

for m in `seq 1 $i`

do

echo -n "* "

done

echo

done

fi

fi

done

可以自己直接复制执行之后感受理解一波~~!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值