Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > *NIX системы: Общие вопросы > Эмулятор терминала и bash


Автор: Rigid 23.10.2013, 22:21
Где собственно грань между эмулятором терминала и интерпритатором баша?

Приглашение командрой строки судя по всему выводит именно эмулятор терминала. т.к. ни в stdout ни в stderr ничего подобного баш не пишет.

Сколько инстансов баша создает эмулятор терминала? Логично было бы создавать один, но тогда не совсем понятно как bash сигнализирует о том что он заверншил выполнене команды(ничего похожего в тех же stdout ни в stderr  я не увидел). А самое интересное что если посмотреть список процессов, то получайтся что создается один истанс на терминал.  и он всегда один и тот же.

В общем вопрос то такой, как все это работет  smile 

сенкс.

Автор: Фантом 23.10.2013, 23:46
Цитата(Rigid @  23.10.2013,  23:21 Найти цитируемый пост)

Приглашение командрой строки судя по всему выводит именно эмулятор терминала. т.к. ни в stdout ни в stderr ничего подобного баш не пишет.

Запустите вместо bash что-нибудь другое, например, csh - Вы обнаружите, что приглашение командной строки выглядит несколько иначе. smile

Автор: Rigid 24.10.2013, 00:00
Интересное кино smile посмотрел csh, он тоже молчит в stdout и stderr

Добавлено через 14 минут и 17 секунд
Похоже дошло, общений между терминалом и башем происходит через tty абстракцию. Так оно?

Автор: Фантом 24.10.2013, 12:00
Цитата(Rigid @  24.10.2013,  01:00 Найти цитируемый пост)
Так оно? 

Именно.  smile 

Автор: tzirechnoy 25.10.2013, 19:24
Цитата
т.к. ни в stdout ни в stderr ничего подобного баш не пишет.


Обычно -- именно в stderr и пишэт. Только учтите: 1) это конкретно bash конкретно сейчас. Например, интэрактивный zsh -- переоткрывает терминал, а бизибоксовский минималистичный shell пишэт в stdout.
2) Если stderr (или stdin) не является терминалом (в смысле isatty(3)) -- то он считает себя неинтэрактивным и вообще не выводит приглашэния.

Автор: shgurbanov 16.1.2014, 20:31
Совершенно разные вещи.

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Эмулятор-терминала-и-bash-id52682254ae2015661b000007#findElement_E7045_52d8175eae20151a23304f7a_0

Автор: shgurbanov 17.1.2014, 14:08
Уточню,

Интерпретатор, среда которая интерпретирует файл построчно.
Оболочка, среда взаимодействия с ядром.

Эмулятор, среда которая воссоздает условия близкие к реальности.Не более того.Вот пример

http://bellard.org/jslinux/

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Эмулятор-терминала-и-bash-id52682254ae2015661b000007#findElement_E7045_52d90f36ae2015171d30523e_0

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)