1、使用echo -e命令,实现一个闪烁的倒三角*图形 

  查阅资料

字体色彩的选项说明:
echo -e "\033[30m 黑色字 \033[0m"
echo -e "\033[31m 红色字 \033[0m"
echo -e "\033[32m 绿色字 \033[0m"
echo -e "\033[33m ×××字 \033[0m"
echo -e "\033[34m 蓝色字 \033[0m"
echo -e "\033[35m 紫色字 \033[0m"
echo -e "\033[36m 天蓝字 \033[0m"
echo -e "\033[37m 白色字 \033[0m"
 
echo -e "\033[40;37m 黑底白字 \033[0m"
echo -e "\033[41;37m 红底白字 \033[0m"
echo -e "\033[42;37m 绿底白字 \033[0m"
echo -e "\033[43;37m 黄底白字 \033[0m"
echo -e "\033[44;37m 蓝底白字 \033[0m"
echo -e "\033[45;37m 紫底白字 \033[0m"
echo -e "\033[46;37m 天蓝底白字 \033[0m"
echo -e "\033[47;30m 白底黑字 \033[0m"
控制选项说明 :
\33[0m 关闭所有属性
\33[1m 设置高亮度
\33[4m 下划线
\33[5m 闪烁
\33[7m 反显
\33[8m 消隐
\33[30m -- \33[37m 设置前景色
\33[40m -- \33[47m 设置背景色
\33[nA 光标上移n行
\33[nB 光标下移n行
\33[nC 光标右移n行
\33[nD 光标左移n行
\33[y;xH设置光标位置
\33[2J 清屏
\33[K 清除从光标到行尾的内容
\33[s 保存光标位置
\33[u 恢复光标位置
\33[?25l 隐藏光标
\33[?25h 显示光标

  查阅以上的资料,满足题述的要求

 

[root@7 testdir]# echo -e "\033[31m \033[5m *******" "\n\033[32m \033[5m  ***** \n\033[33m \033[5m   ***  \n\033[34m \033[5m    *    \033[0m"

wKiom1eWAVLBH9DDAAAji0GyDwo006.gif

  进阶

[root@7 testdir]# echo -e "\E[31;5m **\E[32;5m***\E[31;5m**" "\n\E[33;5m  *\E[34;5m***\E[33;5m* \n\E[35;5m   *\E[36;5m*\E[35;5m*  \n\E[37;5m    *    \E[0m"


wKioL1eWATqAOJrlAAAle_gz1TM412.gif



2、使用date命令显示前10天的年月日以及显示后20天的年月日

 查询资料

  

加减操作: date +%Y%m%d //显示前天年月日 
           date -d "+1 day" +%Y%m%d //显示前一天的日期 
           date -d "-1 day" +%Y%m%d //显示后一天的日期 
           date -d "-1 month" +%Y%m%d //显示上一月的日期 
           date -d "+1 month" +%Y%m%d //显示下一月的日期 
           date -d "-1 year" +%Y%m%d //显示前一年的日期 
           date -d "+1 year" +%Y%m%d //显示下一年的日期

来自: http://man.linuxde.net/date

 

[root@7 testdir]# date   -d "-10 days"   +%F         显示前10天的年月日
[root@7 testdir]# date   -d "-10 days"   +%F
2016-07-15
[root@7 testdir]# date
2016年 07月 25日 星期一 19:22:27 CST
[root@7 testdir]# date   -d "+20 days"  +%F          显示后20天的年月日
[root@7 testdir]# date   -d "+20 days"  +%F
2016-08-14
[root@7 testdir]# date
2016年 07月 25日 星期一 19:26:38 CST

3、编写一个生日脚本,在生日前三天提醒你 

 查询资料

date  %j	按年计的日期(001-366)
date    -d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;
  GNU nano 2.3.1        文件: birthday.sh                     

#! /bin/bash
A=`date -d '1992-07-29' +%j`
B=`date +%j`
let  C=$A-$B
if   [ $C -gt 0 ]&&[ $C -le 3 ];then
      echo  -e "\E[31m Your birthday is coming. \E[0m"
elif [ $C -eq 0 ];then

      echo  -e "\E[31m Today is your birthday. \E[0m"
else
      exit 5
fi

本脚本功能,目前仅限于脚本中输入生日(阳历),然后执行进行提醒。

   1、在你的生日前三天,对你进行提醒,输出 Your birthday is coming.

   2、在你生日当天,对你进行提醒,输出 Today is your birthday.

   3、在其他的时间脚本会直接退出,没有提示 

A=`date -d '1992-07-5' +%j`                  我的生日是7.5  无提醒
[root@7 testdir]# bash birthday.sh
A=`date -d '1992-07-25' +%j`                 当日期改为7.25 
[root@7 testdir]# bash birthday.sh
 Today is your birthday.
A=`date -d '1992-07-26' +%j`                 当日期改为7.26
[root@7 testdir]# bash birthday.sh
 Your birthday is coming.
A=`date -d '1992-08-24' +%j`                  当日期改为8.24  无提醒
[root@7 testdir]# bash birthday.sh

4、练习 

(1)、显示当前日期,格式:2016-08-08

  #  date +%Y-%m-%d

[root@7 testdir]# date +%Y-%m-%d
2016-07-25


(2)、显示前天是星期几

   # echo "The day before yesterday is 星期`date -d "-2 days" +%u` "

[root@7 testdir]#  echo "The day before yesterday is 星期`date -d "-2 days" +%u` "
The day before yesterday is 星期6


(3)、设置当前日期为2008-08-08 08:00

   # date 0808080008.00

[root@7 testdir]# date 0808080008.00
2008年 08月 08日 星期五 08:00:00 CS