Как можно передать скрипту команду прожатия клавиши "пробел" в screen для его завершения?

Как можно отправить нажатие пробела в скрипт или указать его в сессии screen, чтобы завершить пайплайн?
  • 3 октября 2023 г. 7:27
Ответы на вопрос 2
Есть несколько способов передачи команды "пробел" в screen для завершения скрипта или пайплайна. Вот некоторые из них:

1. Используйте команду `screen -X` для отправки нажатия клавиши "пробел" в сессию screen. Например:
```
screen -S <название_сессии> -X stuff " "
```
где `<название_сессии>` - это имя сессии screen.

2. Если у вас есть доступ к TTY сессии с помощью команды `tty`, вы можете использовать команду `echo` для отправки нажатия клавиши "пробел" напрямую в TTY. Например:
```
echo " " > /dev/pts/<номер_TTY>
```
где `<номер_TTY>` - это номер TTY устройства, связанного с сессией screen.

3. Используйте команду `xdotool` для автоматизации нажатия клавиши "пробел". Если у вас нет установленной утилиты `xdotool`, установите ее с помощью менеджера пакетов вашей операционной системы. Затем выполните следующую команду:
```
xdotool key space
```

Выберите подходящий способ в зависимости от ваших требований и возможностей.
Запускайте скрипт-обертку, который отправит пробел в сессию:

```
echo " " | cm.sh
```

Если скрипт cm.sh читает команды напрямую с терминала, а не из stdin, то этот фокус не сработает. Проверьте содержимое файла cm.sh - возможно, там есть отдельная команда вызова приглашения, которую можно удалить.

Для отправки команд в сессию screen можно использовать следующий способ: просмотрите информацию на этой странице, чтобы узнать как это сделать: [ссылка на страницу](https://raymii.org/s/snippets/Sending_commands_or_...)
Похожие вопросы