1

У меня есть экран с запущенным сервером. Этот экран запускается с:

screen -m -d -S server (cmd to start server)

Затем я хочу отправить команду на сервер, выполнив это:

screen -S minecraft -X stuff (cmd)

Это отправляет команду на сервер, но не выполняет ее. (Например, если вы набрали ls в терминале, не нажимая Enter).

Итак, как я могу выполнить команду / смоделировать ввод?

1 ответ1

3

Вы можете сделать это путем принудительного возврата каретки.

Один из способов сделать это - добавить в конец символ control-M . Типичный способ сделать это в оболочке - сначала нажать ctrl-v , а затем нажать Return . ctrl-v сообщает оболочке, что следующее нажатие клавиши должно быть включено буквально. Это не позволяет вашему Return завершить строку и выполнить команду.

Таким образом, ваша команда будет выглядеть примерно так:

screen -S minecraft -X stuff 'ls^M'

Где часть ^M не буквально эти символы, но фактически результат нажатия ctrl-v сопровождаемого Return .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .