(정말 쓸데없는) 터미널에 무한으로 무지개 그라데이션 만들기! (명령어도 길어서 스크린 잠금하지 않은 동료 터미널에 무지개를 띄우려 해도 한글자씩 입력하다가 결국 들켜버리고 만다!!!)

yes "$(seq 231 -1 16)" | while read i; do printf "\\x1b[48;5;${i}m\\n"; sleep .02; done

명령어 분석

yes 'All Work and No Play makes Jack a dull boy'
> seq 1 3
1
2
3

따라서, 위 명령어의 "$(seq 231 -1 16)" 는, 231부터 16까지 1씩 감소하는 숫자의 연속을 출력하고, yes 명령어로 인해 무한하게 출력이 진행되며, whileseq 명령어의 인자를 받아 printf 명령어에서 먼가 흑마법을 실행한다… 그렇다면 printf 에 작성된 저 외계어는 과연 무엇일까?

그것은 바로 ANSI Color Codes!!! ANSI 코드를 사용하여 프롬프트 텍스트의 글자의 색을 바꿀 수 있다!!!

따라서 while문은 yes 명령어로부터 무한히 주어지는 seq의 16~231을 인덱스로 하여 배경색을 차례대로 0.2초 간격으로 무한히 출력하게 되는데…..

termmagic.png

2022-04-03-20-28-21.png

참고자료

yes 명령어