LINUX.ORG.RU

Нужен текст, котрый переливается разными цветами.

 ,


0

1

Возможно ли такое сотворить в ANSI и как? Если есть другие идеи, говорите. Пока что пишу это на bash, но готов использовать другой язык



Последнее исправление: kllk (всего исправлений: 1)

В ANSI нет анимаций.

bash

Но если ты хочешь из говна и палок, то можешь взять sleep в миллисекундах и двигать курсор с заменой символов на те же другого цвета.

Кода будет много, он будет говном, зато будет переливаться. ☺

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

Но если ты хочешь из говна и палок, то можешь взять sleep в миллисекундах …

Ты только что изобрёл всё IT за последние 40 лет.

beastie ★★★★★
()

где-то у меня на Паскале код был...

TechnoMag ★★
()
Ответ на: комментарий от beastie

Ты только что изобрёл всё IT за последние 40 лет.

Я из него и не вылезал. ☺ Только не сорок, а почти шестьдесят. Во всяком случае не меньше пятидесяти.

В современном IT просто в красивый фантик говно заворачивают, а внутре оно ещё хуже окаменелого того что делали раньше. (%

mord0d ★★★★★
()

Можно наверное, но все равно только Ansi не обойтись:

clear
for r in $(seq 0 100); do
for g in $(seq 0 100); do
for b in $(seq 0 100); do
    echo -e "\033[10;10H\033[48;2;${r};${g};${b}m     \033[0m"
    sleep 0.2;done;done;done
anonymous
()
Ответ на: комментарий от anonymous

Спасибо, очень помогло. Буду от этого отталкиваться

kllk
() автор топика

Я случайно нашёл ровно то что нужно. Теперь вопрос исчерпан

#!/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

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 
        do
            tput cup $((lin+1)) $((c+sh))
            echo $l
            let sh++
            sleep 0.01
        done
    }
    k=$((k % 2 + 1))
done
 
kllk
() автор топика
Ответ на: комментарий от mord0d

Кода будет много

4.2

#!/bin/bash
s='mord0d'
read -a sa <<< $( echo "$s"|sed 's/./& /g' )
sl=${#sa[@]}
i=0
while (( ++ i ))
do
  echo -ne '\r'
  j=-1
  while (( ++ j < sl ))
  do
    echo -ne "\033[01;$(( 31 + (($i + $j) % 5) ))m${sa[$j]}"
  done
  echo -ne "\033[0m"
  sleep 0.1
done
mertvoprog
()
Ответ на: комментарий от mertvoprog
#!/bin/bash

Всё время забываю про возможности этого монстра. ☺

Ну и на Perl будет ещё меньше кода.

А вот на классическом POSIX Shell кода будет много. Но доказывать не стану. ☺

mord0d ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.