LinuxForum.Fans
Тема

Перенаправление стандартного ввода

Автор: sam117434 4 сообщений 970 просмотров
13.04.2020 12:00 #434503

Здравствуйте. В терминале можно выполнить команды:
cat t.txt | sh
Это последовательность команд передаст интерпритатору sh команды из файла t.txt и выполнит их. Все почти так как я и задумывал, но мне нужно что бы после выполнения команд из текстового файла, интерпритатор sh не закрывал свою оболочку. т.е. не выходил обратно в мой bash. Если говорить ещё проще, то после того как команды выполнятся в sh, я хочу продолжить вводить в sh уже ч-з стандартный ввод дополнительные команды с клавиатуры. Как это можно реализовать?

13.04.2020 13:14 · отредактировано #434504
"sam117434" написал:
Как это можно реализовать?

скажу банальность... напречь моск. //клиповое мЫшление бич современности...
... добавить третью команду вызова интерпретатора.
[console]
cat t.txt | sh | exec sh
[/console]
или сперва вызвать sh, а потом хоть стриптиз танцуй...
[console]
exec sh | cat t.txt
[/console]

13.04.2020 13:33 · отредактировано #434505

Этот пример я для простоты восприятия написал. Мне тут в соседнем форуме подсказали:

cat t.txt - | sh

Извините что лишний раз снова приходится вас тревожить. В этом реально уже нужном примере (см. ниже) этот «шаблон» не работает:

websocat - это утилита для работы с вэб-сокетами. Когда её запускаю непосредственно из терминала то программа не закрывается после запуска. А вот когда запускаю по примеру выше «cat t.txt - | websocat -q wss://irc-ws.chat.twitch.tv» то почему то содержимое t.txt передается в программу, она его обрабатывает и после этого завершает работу, а мне нужно продолжить в ней работать с введеными данными из файла t.txt. Скажем так, в файле t.txt содержатся команды для первичной конфигурации сеанса работы с утилитой websocat.
Ещё раз прошу прощения за флейм.

И ещё вопросик. Можно ли программе которая работает в фоне (CTRL+Z) из других программ передавать данные в stdin? Ели да, то как это можно реализовать?

13.04.2020 17:51 #434506
"sam117434" написал:
то почему то содержимое t.txt передается в программу, она его обрабатывает и после этого завершает работу

ты описываешь один из частных случаев «я художник! я так видю!». Это относится не к тебе, а к авторам этой поделки(да ещё на расте).
Читай доки по ней, как вариант маны. Но что-то сдаётся мне, что они так же от «художника», если вообще имеются.
Самый простой вариант создать скрипт с её запуском, где будет задана начальная установка, а уже дальше работай как знаешь. Я не работал с ней, поэтому ничего конкретного не могу сказать.
вот почитай как вариант, может чего полезного найдёшь https://habr.com/ru/company/ruvds/blog/326826/ , по идее твой случай.

"sam117434" написал:
И ещё вопросик.

наверно можно, ведь системные демоны как-то взаимодействуют с окружением, только все программы разные и как они слушают stdin зависит от конкретной программы, все художники, некоторые настолько альтернативные, что порой и носки через голову одевают. Есть шины данных типа D-Bus, есть системДЭ, всякие полисикиты и прочая чертовщина, все они в фоне работают и отслеживают события , и у каждого свои костыли...
Читай доки, и если не понятно, спрашивай конкретные вещи.

Войдите или зарегистрируйтесь, чтобы ответить.