-echoctl не подтверждается в разветвленной программе

#bash #terminal #tty

#bash #терминал #tty

Вопрос:

Пожалуйста,

У меня есть приложение терминала, которое не требует повторения управляющих символов обратно на терминал. Я могу с радостью выдать ‘stty -echoctl’ на терминале, запустить свое приложение и получить результат, который мне нужен. Кроме того, я могу включить ‘stty -echoctl’ в .bashrc, и все в порядке. (Я также добавил его в .profile, но, похоже, это все равно приводит к .bashrc)

Затем я могу открыть другой терминал (введите ‘konsole / gnome-terminal / xterm’ в исходной консоли и снова получу ожидаемый результат.

Проблема, с которой я сталкиваюсь (и это при подготовке к разветвлению программы из другого приложения), заключается в том, что если я попытаюсь

$ xterm -e ./ V2.13

или даже

$ xterm -e bash -c ./ V2.13

управляющие символы фактически передаются обратно в мое приложение.??

РЕДАКТИРОВАТЬ: Кроме того, есть ли какая-либо необходимость (выгода) в выполнении bash для выполнения моего приложения?

Комментарии:

1. При запуске вы stty -echoctl меняете настройки tty, подключенного к вашему стандартному интерфейсу. Когда вы запускаете xterm, вы создаете новый tty , который, конечно, не унаследует настройки несвязанного, с которого он был запущен

2. Обратите внимание, что -echoctl это НЕ помешает терминалу повторять управляющие символы, а только изменит способ их повторного отображения. Они будут возвращены как двоичные x02 и т. Д. Вместо ^B и т. Д.

3. Таким образом, это в основном сводится к тому, почему вашему приложению нужны управляющие символы, которые будут повторяться как двоичный мусор, а не в обозначении caret ( ^C , etc). Может быть, есть лучший выход из этого, чем возиться с настройками терминала 😉

4. @user414777 — но…. У меня есть stty -echoctl в .bashrc — я вхожу в систему, открываю терминал, и все работает нормально. Я создаю новый экземпляр, запуская xterm из xterm, и все работает нормально — он наследует настройки

5. @user414777 — «echoing x02» — не уверен в этом, все, что я знаю, это то, что на дисплее моего приложения нет управляющих символов, отражающихся эхом.