shell打印菱形和设置文字颜色背景色

shell脚本在linux日常维护当中经常会用到,例如部署项目或者运维等,本文介绍两个脚本,分别是打印菱形和修改输出脚本背景色和颜色,本文参照这篇全英文文章稍作修改

一、打印菱形

直接上代码

#!/bin/sh
MAX_NO=0
echo -n "Enter Number between (5 to 9) : "
read MAX_NO
if ! [ $MAX_NO -ge 5 -a $MAX_NO -le 9 ] ; then
        echo "WTF... I ask to enter number between 5 and 9, Try Again"
        exit 1
fi
clear
for (( i=1; i<=MAX_NO;i++ )) 
do
    for (( s=MAX_NO;s>=i;s-- ))
        do
            echo -n " "
        done

    for (( j=1; j<=i; j++ ))
    do
        echo -n " ."
    done
    echo ""
done
for (( i=MAX_NO;i>=1;i-- ))    
do
    for (( s=i; s<=MAX_NO; s++ ))
    do
        echo -n " "
    done

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

代码意思比较清晰两次大的循环,先打印上半部分三角形,然后打印下半部分三角形,打印时先递增,然后递减。

大的循环里面再套用两个小的循环分别打印空格和星号(*),这里必须两次大循环,有的网上转载的文章里面直接漏掉了很多代码如下图,导致只出现一层大循环,显然是不对的。

这里写图片描述
顺便贴出我的代码:
这里写图片描述
运行以上程序得到如下结果:
这里写图片描述
小知识:
1)判断语句中 -a 表示逻辑与 -o表示逻辑或
2)echo -n “” 表示接着输出的内容不会换行,比如 echo -n “abc” echo “def” 输出”abcdef”
3) echo “”可以起到换行作用
4)循环语句中变量可以不用带$

二、颜色相关

直接看代码:

#/bin/sh
clear

#effect
#echo -e "\033[1m Bold"        # bold effect
echo -e "\033[5m Blink"       # blink effect
echo -e "\033[0m Hello World" # back to normal

#color
echo -e "\033[31m Red"        # red
echo -e "\033[32m Green"      # green
echo -e "\033[33m Yellow"     # yellow
echo -e "\033[34m Blue"       # blue
echo -e "\033[35m Purple"     # purple
echo -e "\033[36m Cyan"       # cyan
echo -e "\033[0m Normal"      # back to normal
#background
echo -e "\033[41m Hello World Red"
echo -e "\033[42m Hello World Green"
echo -e "\033[43m Hello World Yellow"
echo -e "\033[44m Hello World Blue"
echo -e "\033[45m Hello World Purple"
echo -e "\033[46m Hello World Cyan"
echo -e "\033[0m Hello World Normal"

我的代码截图:
这里写图片描述
运行效果如下:
这里写图片描述

这种看着很炫的效果就是通过转义echo -e 来实现的,平时应该用的不多,可以作为冷知识了解一下。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luffy5459

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值