мне нужен способ ввода текста в уже запущенную программу в терминале (linux) - PullRequest
0 голосов
/ 20 апреля 2020

(arch Linux) в основном у меня есть программа, работающая в терминале, я хочу, чтобы скрипт вводил в нее некоторые команды через несколько часов.

Я пробовал:

  • ./program < inputfile ... проблема в том, что он мгновенно передает команды, мне нужна функция ожидания или сна.
  • ./bashscript | ./program ... это делает больше того, что я хочу, просто в этот момент я не могу сам вводить какие-либо команды в программу. так что это также не обновление go.

: больше информации .. программа - это сервер майнкрафта, команда, которую я хочу передать, является "остановкой", которая остановит программу.

есть предложения?

1 Ответ

0 голосов
/ 20 апреля 2020

Изменяя программу, вы можете использовать read, несколько опций.

1) Остановка выполнения программы (*):

while read line; do $line; done < inputfile

2) Чтение из входного файла по адресу уточнил c раз, объяснил подробнее в этом примере

exec 3< /etc/path/to/inputfile #define this in the beginning of program

... program doing things

read 3 -u a b

(*), в обоих случаях было бы важно понять больше о "программе".

При этом вы, по сути, останавливаете его состояние , поэтому нужно подумать, может ли он изящно прекратить выполнение всего, что он делает (периодически выполнять чтение? Остановить его состояние после завершения?), И начать принимать другие команды?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...