【新春创造营】开发了一个bash脚本

```bash

#!/bin/bash

# 春节庆典脚本

# 中国新年庆祝工具

# 颜色定义

RED=‘\033[0;31m’

GREEN=‘\033[0;32m’

YELLOW=‘\033[1;33m’

BLUE=‘\033[0;34m’

PURPLE=‘\033[0;35m’ CYAN=‘\033[0;36m’

NC=‘\033[0m’ # No Color

# 十二生肖

ZODIAC=(“鼠” “牛” “虎” “兔” “龙” “蛇” “马” “羊” “猴” “鸡” “狗” “猪”)

# 祝福语列表

GREETINGS=(

"新春快乐,万事如意!"

"恭喜发财,红包拿来!"

"龙马精神,大吉大利!"

"心想事成,步步高升!"

"年年有余,岁岁平安!"

"福星高照,财源广进!"

"阖家欢乐,幸福美满!"

"身体健康,工作顺利!"

)

# 春节习俗

CUSTOMS=(

"🧧 发红包:长辈给晚辈发红包,寓意压岁驱邪"

"🏮 贴春联:用红纸写吉祥话贴在门上"

"🎆 放鞭炮:驱邪避灾,迎接新年"

"🥟 吃饺子:北方人过年必吃,寓意招财进宝"

"🍊 吃年糕:南方人过年吃年糕,寓意年年高升"

"🎊 舞龙舞狮:祈求风调雨顺,国泰民安"

"🏮 挂灯笼:象征团圆和喜庆"

"🍊 吃年夜饭:全家人团聚的重要时刻"

)

# 显示标题

show_title() {

clear

echo -e "${RED}"

cat << "EOF"

_____ __ __ _

/ ____| | \/ | | |

| (__ __ _ __ | \ / | ___| |_

\___ \ / _ \ '__| | |\/| |/ _ \ __|

____) | __/ | | | | | __/ |_

|___/ \__|_| |_| |_|\__|\__|

EOF

echo -e "${CYAN}       🏮 中国新年庆典 🏮${NC}"

echo ""

}

# 获取当前生肖

get_zodiac_year() {

local year=$1

local zodiac_index=$(( (year - 4) % 12 ))

if \[ $zodiac_index -lt 0 \]; then

    zodiac_index=$((zodiac_index + 12))

fi

echo ${ZODIAC\[$zodiac_index\]}

}

# 显示生肖ASCII艺术

show_zodiac() {

local current_year=$(date +%Y)

local zodiac=$(get_zodiac_year $current_year)

echo -e "${YELLOW}"

case $zodiac in

    "龙")

        cat << "EOF"

  /\\\_/\\

 ( o.o )

  > ^ <

🐉 龙年大吉 🐉

EOF

        ;;

    "蛇")

        cat << "EOF"

 \~\~\~\~\~\~\~

/ o  o  \\

\\   ^  /

 \~\~\~\~\~\~\~

🐍 蛇年吉祥 🐍

EOF

        ;;

    "马")

        cat << "EOF"

  /\\

 /  \\

/\___\_\\

// || \\\\

🐴 马到成功 🐴

EOF

        ;;

    "羊")

        cat << "EOF"

   / \\

  / o o\\

  (  ^  )

   \\\__\_/

🐑 三羊开泰 🐑

EOF

        ;;

    "猴")

        cat << "EOF"

  /\\\_/\\

 ( o.o )

  /  |  \\

🐵 猴年大吉 🐵

EOF

        ;;

    "鸡")

        cat << "EOF"

  (o)(o)

  /  O  \\

 /  ^  \\

🐓 鸡年大吉 🐓

EOF

        ;;

    "狗")

        cat << "EOF"

  / \\\_\_

 (    @\\\__\_

 /         O

/   (\____\_/

/_____/ U

🐶 狗年旺旺 🐶

EOF

        ;;

    "猪")

        cat << "EOF"

  (o)(o)

 /  O  \\

/  ^  \\

🐷 猪年大吉 🐷

EOF

        ;;

    "鼠")

        cat << "EOF"

  /\\\_/\\

 ( o.o )

  > ^ <

🐀 鼠年大吉 🐀

EOF

        ;;

    "牛")

        cat << "EOF"

  (o)(o)

 /  O  \\

/  ^  \\

🐂 牛年大吉 🐂

EOF

        ;;

    "虎")

        cat << "EOF"

  /\\\_/\\

 ( o.o )

  > ^ <

🐅 虎年大吉 🐅

EOF

        ;;

    "兔")

        cat << "EOF"

  /\\\_/\\

 ( o.o )

  > ^ <

🐰 兔年大吉 🐰

EOF

        ;;

esac

echo -e "${NC}当前年份: ${GREEN}$current_year年 - $zodiac年${NC}"

echo ""

}

# 计算到下一个春节的天数

countdown_to_spring_festival() {

local current_year=$(date +%Y)

local current_month=$(date +%m)

local current_day=$(date +%d)

\# 春节日期(简化版,实际需要根据农历计算)

\# 这里使用近似值:春节通常在1月21日到2月20日之间

local spring_festival_month=1

local spring_festival_day=29  # 2026年春节是1月29日

\# 如果当前日期已过今年春节,计算到明年春节

if \[ $current_month -gt $spring_festival_month \] || \\

   (\[ $current_month -eq $spring_festival_month \] && \[ $current_day -gt $spring_festival_day \]); then

    spring_festival_year=$((current_year + 1))

    \# 这里需要根据实际农历日期调整

    spring_festival_month=2

    spring_festival_day=17  # 2027年春节是2月17日

else

    spring_festival_year=$current_year

fi

\# 计算天数差(简化计算)

local sf_date="$spring_festival_year-$spring_festival_month-$spring_festival_day"

local current_date="$current_year-$current_month-$current_day"

echo -e "${PURPLE}📅 距离 $spring_festival_year 年春节还有:${NC}"

echo -e "${YELLOW}"

\# 使用date命令计算天数差

local days_diff=$(( ($(date -d "$sf_date" +%s) - $(date -d "$current_date" +%s)) / 86400 ))

if \[ $days_diff -gt 0 \]; then

    echo "    $days_diff 天"

elif \[ $days_diff -eq 0 \]; then

    echo "    今天就是春节!🎉🎉🎉"

else

    echo "    今年春节已经过了!"

fi

echo -e "${NC}"

}

# 显示随机祝福语

show_greeting() {

local random_index=$((RANDOM % ${#GREETINGS\[@\]}))

echo -e "${GREEN}✨ ${GREETINGS\[$random_index\]} ✨${NC}"

echo ""

}

# 显示春节习俗

show_custom() {

echo -e "${CYAN}📜 春节习俗:${NC}"

echo ""

for custom in "${CUSTOMS\[@\]}"; do

    echo "  $custom"

    sleep 0.3

done

echo ""

}

# 显示菜单

show_menu() {

echo -e "${YELLOW}╔════════════════════════════════╗${NC}"

echo -e "${YELLOW}║     春节庆典菜单选项          ║${NC}"

echo -e "${YELLOW}╠════════════════════════════════╣${NC}"

echo -e "${YELLOW}║  1. 显示新年祝福语            ║${NC}"

echo -e "${YELLOW}║  2. 查看春节倒计时            ║${NC}"

echo -e "${YELLOW}║  3. 了解春节习俗              ║${NC}"

echo -e "${YELLOW}║  4. 显示生肖信息              ║${NC}"

echo -e "${YELLOW}║  5. 查看所有功能              ║${NC}"

echo -e "${YELLOW}║  0. 退出程序                  ║${NC}"

echo -e "${YELLOW}╚════════════════════════════════╝${NC}"

echo ""

}

# 主函数

main() {

show_title

show_zodiac

while true; do

    show_menu

    echo -n -e "${BLUE}请选择 (0-5): ${NC}"

    read choice

    case $choice in

        1)

            clear

            show_title

            show_zodiac

            show_greeting

            ;;

        2)

            clear

            show_title

            show_zodiac

            countdown_to_spring_festival

            ;;

        3)

            clear

            show_title

            show_zodiac

            show_custom

            ;;

        4)

            clear

            show_title

            show_zodiac

            ;;

        5)

            clear

            show_title

            show_zodiac

            show_greeting

            countdown_to_spring_festival

            show_custom

            ;;

        0)

            clear

            echo -e "${GREEN}"

            cat << "EOF"

╔════════════════════════════════════╗

║ ║

║ 祝您新春快乐!万事如意! ║

║ ║

:red_paper_lantern: 恭喜发财,红包拿来! :red_paper_lantern:

║ ║

╚════════════════════════════════════╝

EOF

            echo -e "${NC}"

            exit 0

            ;;

        \*)

            echo -e "${RED}无效选择,请重新输入!${NC}"

            sleep 1

            ;;

    esac

    echo ""

    echo -n -e "${BLUE}按回车键继续...${NC}"

    read

    clear

    show_title

    show_zodiac

done

}

# 运行主函数

main%

```

没明白 :joy: 需要做成项目应用哦