Предполагая самый простой случай (короткое слово, без обводки строк, без заботы о достижении конца экрана при прокрутке), вы можете сделать следующее
#!/bin/bash
SENTENCE=""
tput sc
while read word
do
SENTENCE="$SENTENCE $word"
tput rc
tput hpa 20
printf '%s\n' "$SENTENCE"
tput sc
done
Это использует две функции терминала, которые есть в большинстве описаний терминалов, которые вы будете использовать:
sc
и rc
), иhpa
). Вы можете жестко закодировать соответствующие управляющие последовательности, в ущерб удобочитаемости...
Кстати, некоторые могут предложить использовать escape-стрелку вверх, но это имеет ту же проблему с прокруткой в конце экрана, как и \e[F
(CPL
, которого нет в описании вашего терминала).
Для перемещения по горизонтали можно использовать правый курсор с параметром, например,
tput cuf 20
который будет \e[20C
.
В конце вопроса есть комментарий о \e[1a
, но управляющие последовательности ANSI зависят от регистра, это не то же самое, что \e[1A
(который перемещает курсор на одну строку вверх). Возможно, это то, что вы имели в виду:
#!/bin/bash
SENTENCE=""
while read word
do
SENTENCE="$SENTENCE $word"
tput cuu1
tput hpa 20
printf '%s\n' "$SENTENCE"
done
что легче прочитать, чем
#!/bin/bash
SENTENCE=""
while read word
do
SENTENCE="$SENTENCE $word"
echo -en '\e[A'
echo -en '\e[20C'
echo "$SENTENCE"
done
Настройки монитора могут быть в .xinitrc
, попробуйте удалить/переместить этот файл и посмотреть, работает ли он, также вам не нужно перезагружаться, работая pkill X
или systemctl restart lightdm
перезапустит X-сервер.
Если это не работает, попробуйте запустить mv ~/.config/dconf ~/dconf.bak и mv ~/.config/mate ~/mate.bak, это должно сбросить конфигурацию помощника, я почти уверен, что это единственный место слева, где может быть конфигурация монитора