千家信息网

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

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,shell脚本编程设计--根据输入的数输出菱形、三角形或者数字金字塔(带闪烁颜色)shell脚本程序和解释如下#!/bin/bash#创建死循环,当输入出错或者输入"quit"字符串退出脚本程序whi
千家信息网最后更新 2025年12月01日shell脚本编程设计——根据输入的数输出菱形、三角形或者数字金字塔(带闪烁颜色)

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

shell脚本程序和解释如下

#!/bin/bash#创建死循环,当输入出错或者输入"quit"字符串退出脚本程序while truedo#等待用户输入read -p "请输入一个不大于20的正整数(输入"quit"则退出):" n#先判断字符串是否是quitif [ "$n" == "quit" ]then    echo "您选择退出"    exit 0fi#判断输入的是否为数字,不是则错误结束脚本程序if [[ $n =~ ^[0-9]+$ ]]then    :else    echo "sorry you input no a number!"    exit 1fi#判断输入的数是否大于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    doneelse    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        fifidone

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

0