🔤🔤🔥🔤🔤🔤🔤
Вариант 2048, оптимизированный по занимаемому экранному пространству.
➡️ Ознакомиться с игрушкой можно здесь.
Но у нас тут люди серьезные, поэтому рассмотрим проблемы, возникающие при реализации вывода скриптов.
Простой пример:
for i in {1..100};do
printf "#"
sleep .3
doneКод просто выводит символы
#, примерно 3 штуки в секунду. Все работает нормально, пока пользователь не начинает что-то набирать на клавиатуре.ㅤ
И тогда получаем:
######sb#sf#bg#sfbg#wfgb#wg#fg#b###^[[A#^[[B#^[[D#^[[A#^[[B##
Убрать эхо вывода на терминал просто:
stty -echo
Классная команда. После ее выполнения нажатые клавиши не отображаются.
Все работает, команды выполняются, результат отображается, а набранная команда — нет. Как при наборе пароля.
Вернуть все просто:
stty echo
Но в скриптах желательно обрабатывать прерывания:
trap 'exit' INT HUP TERM
trap 'stty echo;tput cnorm' EXIT
# stop terminal echo
stty -echo
#hide cursor
tput civis
Применять исключительно для причинения добра.
man stty
man tput
help trap
🛠 #bash #linux #games
—
✅ @bashdays / @linuxfactory / @blog