1689 views|7 replies

1w

Posts

25

Resources
The OP
 

ASCII Animated Christmas Tree [Copy link]

Enter the following command in a terminal (such as mobaxterm, bash, linux subsystem) to display a fun Christmas tree animation

curl version

curl https://raw.githubusercontent.com/sergiolepore/ChristBASHTree/master/tree-EN.sh | bash

wget version

wget -qO- https://raw.githubusercontent.com/sergiolepore/ChristBASHTree/master/tree-EN.sh | bash

Docker version

docker pull sergiolepore/christbashtree:latest
docker run -it sergiolepore/christbashtree:latest

This post is from DIY/Open Source Hardware

Latest reply

Done, by the way, post the source code #!/bin/bash trap "tput reset; tput cnorm; exit" 2 clear tput civis lin=2 col=$(($(tput cols) / 2)) c=$((col-1)) est=$((c-2)) color=0 tput setaf 2; tput bold # Tree for ((i=1; i<20; i+=2)) { tput cup $lin $col for ((j=1; j<=i; j++)) { echo -n \* } let lin++ let col-- } tput sgr0; tput setaf 3 # Trunk for ((i=1; i<=2; i++)) { tput cup $((lin++)) $c echo 'mWm' } new_year=$(date +'%Y') let new_year++ tput setaf 1; tput bold tput cup $lin $((c - 6)); echo MERRY CHRISTMAS tput cup $((lin + 1)) $((c - 10)); echo And lots of CODE in $new_year let c++ k=1 # Lights and decorations while true; do for ((i=1; i<=35; i++)) { # Turn off the lights [ $k -gt 1 ] && { tput setaf 2; tput bold tput cup ${line[$[k-1]$i]} ${column[$[k-1]$i]}; echo \* unset line[$[k-1]$i]; unset column[$[k-1]$i] # Array cleanup } li=$((RANDOM % 9 + 3)) start=$((c-li+2)) co=$((RANDOM % (li-2) * 2 + 1 + start)) tput setaf $color; tput bold # Switch colors tput cup $li $co echo o line[$k$i]=$li column[$k$i]=$co color=$(((color+1)%8)) # Flashing text sh=1 for l in C O D E do tput cup $((lin+1)) $((c+sh)) echo $l let sh++ sleep 0.01 done } k=$((k % 2 + 1)) done [attach]666844[/attach]   Details Published on 2022-12-24 22:30
 

6744

Posts

2

Resources
2
 

Haha, this is quite interesting!

This post is from DIY/Open Source Hardware
 
 

2w

Posts

341

Resources
3
 

The black background can be changed to be more interesting

This post is from DIY/Open Source Hardware

Comments

There is code, you can modify it and try it  Details Published on 2022-12-22 16:59
 
 
 

1w

Posts

25

Resources
4
 
qwqwqw2088 posted on 2022-12-22 16:04 It would be more interesting if the black background could be changed

There is code, you can modify it and try it

This post is from DIY/Open Source Hardware
 
 
 

2w

Posts

74

Resources
5
 

The atmosphere is there :)

This post is from DIY/Open Source Hardware
Add and join groups EEWorld service account EEWorld subscription account Automotive development circle
Personal signature

加油!在电子行业默默贡献自己的力量!:)

 
 
 

7422

Posts

2

Resources
6
 

This is quite interesting!

This post is from DIY/Open Source Hardware
Personal signature

默认摸鱼,再摸鱼。2022、9、28

 
 
 

4764

Posts

12

Resources
7
 

Done, by the way, post the source code

#!/bin/bash
trap "tput reset; tput cnorm; exit" 2
clear
tput civis
lin=2
col=$(($(tput cols) / 2))
c=$((col-1))
est=$((c-2))
color=0
tput setaf 2; tput bold

# Tree
for ((i=1; i<20; i+=2))
{
    tput cup $lin $col
    for ((j=1; j<=i; j++))
    {
        echo -n \*
    }
    let lin++
    let col--
}

tput sgr0; tput setaf 3

# Trunk
for ((i=1; i<=2; i++))
{
    tput cup $((lin++)) $c
    echo 'mWm'
}
new_year=$(date +'%Y')
let new_year++
tput setaf 1; tput bold
tput cup $lin $((c - 6)); echo MERRY CHRISTMAS
tput cup $((lin + 1)) $((c - 10)); echo And lots of CODE in $new_year
let c++
k=1

# Lights and decorations
while true; do
    for ((i=1; i<=35; i++)) {
        # Turn off the lights
        [ $k -gt 1 ] && {
            tput setaf 2; tput bold
            tput cup ${line[$[k-1]$i]} ${column[$[k-1]$i]}; echo \*
            unset line[$[k-1]$i]; unset column[$[k-1]$i]  # Array cleanup
        }

        li=$((RANDOM % 9 + 3))
        start=$((c-li+2))
        co=$((RANDOM % (li-2) * 2 + 1 + start))
        tput setaf $color; tput bold   # Switch colors
        tput cup $li $co
        echo o
        line[$k$i]=$li
        column[$k$i]=$co
        color=$(((color+1)%8))
        # Flashing text
        sh=1
        for l in C O D E
        do
            tput cup $((lin+1)) $((c+sh))
            echo $l
            let sh++
            sleep 0.01
        done
    }
    k=$((k % 2 + 1))
done

This post is from DIY/Open Source Hardware

Comments

Simple and fun  Details Published on 2022-12-25 10:56
 
 
 

1w

Posts

25

Resources
8
 
Azuma Simeng posted on 2022-12-24 22:30 Done, by the way, post the source code #!/bin/bash trap "tput reset; tput cnorm; exit" 2 clear tput civis lin ...

Simple and fun

This post is from DIY/Open Source Hardware
 
 
 

Guess Your Favourite
Just looking around
Find a datasheet?

EEWorld Datasheet Technical Support

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号
快速回复 返回顶部 Return list