информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медЗа кого нас держат?Сетевые кракеры и правда о деле Левина
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
 Умер Никлаус Вирт 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / beginners
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Господа, будьте снисходительны, не бросайтесь сразу штрафовать за, как вам кажется, глупые вопросы - beginners на то и beginners.
ttysnoop 13.05.05 13:24  Число просмотров: 2803
Автор: :-) <:-)> Статус: Elderman
Отредактировано 13.05.05 13:35  Количество правок: 1
<"чистая" ссылка>
...
> приглашение. Но когда я делаю echo $n, то мне выводится
> пустая строка. Почему?

это не знаю... но если строку "read -d q n" вынести в другой скрипт, к примеру a.sh, и сделать
cat /dev/tty1 | ./a.sh
то оно почему-то работает как нужно :-)

Есть программки ttysnoop или ttywatch - позволяют нескольким пользователям одновременно работать с одним терминалом (или просто подсматривать, что делается на чужом теринале ;-)
TTYSnoop allows you to snoop on login tty's through another tty-device or pseudo-tty. The snoop-tty becomes a 'clone' of the original tty, redirecting both input and output from/to it.

http://freshmeat.net/projects/ttysnoop/
<beginners>
[linux] Перенаправление ввода с терминала. 08.05.05 19:34  
Автор: ZloyShaman <ZloyShaman> Статус: Elderman
<"чистая" ссылка>
Требуется, чтобы скрипт, запущенный, к примеру, в бэкграунде получал ввод для команды read с указанного терминала. Т.е. echo "test" > /dev/tty2 отлично работает. А вот как сделать, чтобы read брал ввод с /dev/tty2?
Уточнение - с чем трудности, сделать сначала open(... 11.05.05 12:39  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
<"чистая" ссылка>
> Требуется, чтобы скрипт, запущенный, к примеру, в
> бэкграунде получал ввод для команды read с указанного
> терминала. Т.е. echo "test" > /dev/tty2 отлично
> работает. А вот как сделать, чтобы read брал ввод с
> /dev/tty2?

Уточнение - с чем трудности, сделать сначала open( "/dev/tty2", ...); или даже это не помогает?
Если одна задача пытается сделать read с /dev/tty2, какая-нибудь getty например, то read другой будет ждать окончания этого запроса на ввод. Нужно рубить и убирать из респавна.
Есть подвижки 12.05.05 21:49  
Автор: ZloyShaman <ZloyShaman> Статус: Elderman
<"чистая" ссылка>
Итак, я логинюсь в /dev/tty1 и в /dev/tty2 под рутом. Из tty2 нахожу pid баша на tty1 и посылаю ему SIGSTOP. Он успешно замирает (не реагирует на ввод). Далее на tty2 я делаю:
cat /dev/tty1 | read -d q n
после чего иду в tty1 и ввожу символы, завершая ввод символом q
При этом ввод почему-то завершается только после второго нажатия q, что странно. Но всё-таки завершается, об этом можно судить по тому, что tty2 снова появляется приглашение. Но когда я делаю echo $n, то мне выводится пустая строка. Почему?
ttysnoop 13.05.05 13:24  
Автор: :-) <:-)> Статус: Elderman
Отредактировано 13.05.05 13:35  Количество правок: 1
<"чистая" ссылка>
...
> приглашение. Но когда я делаю echo $n, то мне выводится
> пустая строка. Почему?

это не знаю... но если строку "read -d q n" вынести в другой скрипт, к примеру a.sh, и сделать
cat /dev/tty1 | ./a.sh
то оно почему-то работает как нужно :-)

Есть программки ttysnoop или ttywatch - позволяют нескольким пользователям одновременно работать с одним терминалом (или просто подсматривать, что делается на чужом теринале ;-)
TTYSnoop allows you to snoop on login tty's through another tty-device or pseudo-tty. The snoop-tty becomes a 'clone' of the original tty, redirecting both input and output from/to it.

http://freshmeat.net/projects/ttysnoop/
Попробую. Как ты считаешь, запуск из другого скрипта... 13.05.05 13:58  
Автор: ZloyShaman <ZloyShaman> Статус: Elderman
<"чистая" ссылка>
> это не знаю... но если строку "read -d q n" вынести в
> другой скрипт, к примеру a.sh, и сделать
> cat /dev/tty1 | ./a.sh
> то оно почему-то работает как нужно :-)

Попробую. Как ты считаешь, запуск из другого скрипта равносилен ли такой строчке:
cat /dev/tty1 | (read -d q n)
?
> Есть программки ttysnoop или ttywatch - позволяют
> нескольким пользователям одновременно работать с одним
> терминалом (или просто подсматривать, что делается на чужом
> теринале ;-)

Не, надо без всяких программ.
Оказывается тут в любом случае порождается новый шелл (раз... 13.05.05 16:00  
Автор: :-) <:-)> Статус: Elderman
<"чистая" ссылка>
> Попробую. Как ты считаешь, запуск из другого скрипта
> равносилен ли такой строчке:
> cat /dev/tty1 | (read -d q n)

Оказывается тут в любом случае порождается новый шелл (раз присутствует pipe), и read будет делаться уже в новом шелле, следовательно и переменная n будет действительна только внутри нового шелла, короче, на нее можно будет ссылаться только внутри круглых скобок.
cat /dev/tty1 | (read -d q n ; echo $n; )
А после выполнения этой команды произойдет возврат в родительский шелл, и в нем переменной n не будет...
Спасибо, всё осознал. 17.05.05 15:36  
Автор: ZloyShaman <ZloyShaman> Статус: Elderman
<"чистая" ссылка>
надо так: read -e Name < /dev/tty2 17.05.05 16:51  
Автор: :-) <:-)> Статус: Elderman
<"чистая" ссылка>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach