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

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

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

shell打印菱形和设置文字颜色背景色_第1张图片
顺便贴出我的代码:
shell打印菱形和设置文字颜色背景色_第2张图片
运行以上程序得到如下结果:
shell打印菱形和设置文字颜色背景色_第3张图片
小知识:
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"

我的代码截图:
shell打印菱形和设置文字颜色背景色_第4张图片
运行效果如下:
shell打印菱形和设置文字颜色背景色_第5张图片

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

你可能感兴趣的:(linux)