Вы пытались использовать atsc начальные настраивающие данные?
$ head -n 20 /usr/share/dvb/atsc/us-ATSC-center-frequencies-8VSB
# US ATSC center frequencies, use if in doubt
A 57028615 8VSB
A 63028615 8VSB
A 69028615 8VSB
A 79028615 8VSB
A 85028615 8VSB
A 177028615 8VSB
A 183028615 8VSB
A 189028615 8VSB
A 195028615 8VSB
A 201028615 8VSB
A 207028615 8VSB
A 213028615 8VSB
A 473028615 8VSB
A 479028615 8VSB
A 485028615 8VSB
A 491028615 8VSB
A 497028615 8VSB
A 503028615 8VSB
Как это ведет себя с помощью vlc для настройки?
vlc atsc://frequency=689028615 :dvb-adapter=0
Это - проблема с dialog
реализация из http://invisible-island.net/dialog/dialog.html.
На запуске это делает a smcup
+ rmcup
отдельно, я верю потому что ncurses
стандартная программа инициализации делает smcup
и dialog
хочет отменить это. Таким образом, если Вы делаете Ваш smcup
заранее, это не будет иметь никакого эффекта, потому что rmcup
отменит его.
Работа вокруг должна добавить --keep-tite
опция, которая говорит этому не делать это, таким образом, dialog
сделает smcup
на запуске и rmcup
на выходе как другой ncurses
приложения, если терминал поддерживает его.
Из Ваших комментариев у Вас, кажется, есть другая проблема: Вы находитесь в терминале, который не поддерживает альтернативный экран, таким образом независимо от того, что Вы делаете, Вы не сможете использовать тот альтернативный экран, поскольку он не существует.
Что Вы могли сделать, хотя или использование другой терминал, который имеет альтернативный экран как шпаклевка или Unix от Cygwin на X-сервере Cygwin. Или выполненный X терминалов на удаленном сервере для соединения с и дисплей на X-сервере. Или выполненный на терминальном основанный эмулятор терминала в Вашем терминале, который поддерживает альтернативный экран как GNU screen
.
Проблема сложнее, чем предполагается. Начните со сценария:
tput smcup
clear
dialog --yesno "Do you want to continue?" 0 0
rc=$?
clear
tput rmcup
if [ "${rc}" == "0" ]; then
echo Yes
else
echo No
fi
Существует только один альтернативный экран (и вы не можете обращаться с ним как со стеком). tput smcup
(технически "запустить режим адресации курсора") часто используется в xterm и его аналогах для переключения на альтернативный экран. На самом деле в xterm для этой цели реализована не одна управляющая последовательность (см. Почему экран не очищается при запуске vi?), и некоторые из них не распознаются аналогами. В одном из комментариев говорится, что MobaXterm является настоящим терминалом в данном случае. Этот терминал основан на (использует код из) PuTTY, который, как оказалось, обрабатывает код 1049 в terminfo MobaXterm.
Итак...
rmcup
, переключающая обратно на обычный экран, содержимое которого будет таким же, как и до начала сценарияtput rmcup
. Это просит эмулятор терминала переключиться обратно с альтернативного экрана. Поскольку терминал уже находится в нормальном режиме, последняя строка может быть интерпретирована одним из (по крайней мере) двух способов:
В данном случае, похоже, что последнее: часть выполняется. PuTTY (и, при быстрой проверке, xterm) восстанавливают позицию курсора с первого использования tput smcup
, потому что подсказка находится в середине экрана (а не вверху, где ее оставила бы clear
). ОП заметил пробел, потому что в этом окне уже было выполнено несколько команд до запуска скрипта - курсор вернулся в исходное положение, но команды исчезли из-за clear
перед tput rmcup
.
tput smcup | od -tc
0000000 033 [ ? 1 0 4 9 h 0000010
и это не переключается для чередования экрана, и значение $TERMxterm
.Sorry я не понял о который реализацияdialog
и - сохраните-tite не помог. Я использую его как этоdialog --keep-tite --yesno "Do you want to continue?" 0 0
– g4ur4v 14.03.2013, 12:33Linux indlin534 2.6.18-238.12.1.el5 #1 SMP Sat May 7 20:18:50 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux
и кошка/etc/issue даетRed Hat Enterprise Linux Server release 5.6 (Tikanga)
– g4ur4v 14.03.2013, 12:39screen
илиtmux
в том терминале? – Stéphane Chazelas 14.03.2013, 13:26putty
без удачи. Я не думаю, что Вы правы, когда Вы говорите, что проблема с терминалом. Я протестировал tput smcup и rmcup без диалогового окна, и это хорошо работает согласно моему пониманию, что проблема вот с диалоговой реализацией. Если мой терминал не имеет альтернативного экрана, как могут я для использованияvi
и другие такие команды, которые требуют подобной реализации? – g4ur4v 14.03.2013, 21:08