$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}
, так что вам не нужно его менять.
Для 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 >
. Это похоже на предыдущий код, но для цифровой клавиатуры.