Расшифровка управляющих последовательностей ncurses

$irndbчитается как одна переменная с именем irndb. Вы можете изменить синтаксический анализ, чтобы использовать только iв качестве имени переменной с помощью${i}rndb:

for i in {1..1000}
do
        MotifPSSM../source/FruR-DPInteract.txt genrand/randomseq_${i}rndb > motifoutput/output_$i
done

Цикл forсам по себе был в порядке, включая расширение фигурной скобки {1..1000}, так что вам не нужно его менять.

2
04.05.2020, 18:24
1 ответ

Для XTerm и всего, что заявляет о совместимости с ним, вам понадобится это:

https://invisible-island.net/xterm/ctlseqs/ctlseqs.html

Вам также понадобится руководство для терминала VT100, который XTerm эмулирует и расширяет:

https://vt100.net/docs/vt100-ug/contents.html

Справочная страница Linux console_codes(4)описывает управляющие коды, используемые консолью Linux, которая также является надмножеством VT100, и справочная страница иногда содержит более подробные описания, чем другие источники выше:

http://man7.org/linux/man-pages/man4/console_codes.4.html

Неизвестные коды в вашем примере:

\33[22;0;0t

Здесь первая часть\33[(илиESC [)известна как CSIили Интродюсер управляющей последовательности .

CSI <number> ; <number> ; <number> tпредставляет собой последовательность операций с окном. Последовательности управления, заканчивающиеся на t, всегда принимают три числовых параметра, но не всегда используют их все. Первый параметр — 22, а второй — 0, поэтому этот код указывает эмулятору терминала сохранить текущие заголовки окон и значков, чтобы их можно было восстановить позже.

\33[1;39r

Это CSI <number> ; <number> r. Значение «установить область прокрутки». Установка этого параметра на что-то меньшее, чем размер текущего окна, позволит эффективно сохранить что-то статичное, например, строку меню в верхней части дисплея TUI, строку состояния внизу или и то, и другое при отображении большого количества текста в области прокрутки.

\33[4l

Это CSI <one or more numbers> l. Значение - "режим сброса". Значение 4 сбрасывает (отключает )«режим замены вставки -» или, говоря простым языком, говорит, что все, что выводится на экран, должно просто перезаписывать то, что было там раньше.

\33[39;1H

Это CSI <number> ; <number> H. Это переместит курсор на 39-ю строку, 1-й столбец.

\33[23;0;0t

Это еще одна последовательность операций с окном. Это восстанавливает ранее -сохраненные заголовки окон и значков. Очевидно, что ваша тестовая программа вообще не изменила заголовки, но эти последовательности являются частью стандартных процедур инициализации/выхода, выполняемых initscr()и endwin()соответственно.

\33[?1l          # Set cursor key to cursor

Это переводит клавиши курсора клавиатуры VT100 в обычный «режим клавиш курсора». Был также другой режим, предназначенный для использования этих клавиш для конкретных целей приложения -, например дополнительный набор функциональных клавиш. Терминал VT100 выдавал разные выходные данные для этих клавиш в соответствии с настройками режима; это просто гарантирует, что если приложение переключит клавиши курсора в режим по умолчанию, отличный от -, они будут возвращены в режим по умолчанию до выхода из программы.

\33>

Это просто ESC >. Это похоже на предыдущий код, но для цифровой клавиатуры.

5
28.04.2021, 23:16

Теги

Похожие вопросы