您的位置:首页 > 运维架构 > Shell

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

2017-01-22 23:11 190 查看

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 来实现的,平时应该用的不多,可以作为冷知识了解一下。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐