Я знаю, что можно запустить программу на отдельном экране, но я вошел бы в существующий экран, уничтожил бы в настоящее время рабочий процесс, перезапустил бы его и затем отсоединился бы.
Действительно ли возможно сделать это со сценарием удара, как я могу отправить ctrl-D ctrl-A и Ctrl-C, например?
Если Вы хотите удалить экран, можно также удалить псевдоним в /var/run/screens/{user/
и сделать screen -wipe
.
, Но экран имеет материал и paste
команда:
Команда: вставка [регистры [место назначения]]
(C-a ], C-a C-])
Запись (связанное) содержание указанных регистров к stdin потоку текущего окна. Регистр †. ’ рассматривают как буфер. Если никакой параметр не указан, пользователю предлагают ввести единственный регистр. Буфер может быть заполнен копией, историей и командами readbuf. Другие регистры могут быть заполнены регистром, readreg и вставить команды. Если вставку называют со вторым аргументом, содержание указанных регистров вставляется в именованный целевой регистр, а не окно. Если †. ’ используется в качестве второго аргумента, буфер дисплея является местом назначения. Отметьте, та вставка использует большое разнообразие ресурсов: Обычно оба, текущее окно и текущий дисплей требуются. Но каждый раз, когда второй аргумент указан, никакое текущее окно не необходимо. Когда исходная спецификация только содержит регистры (не буфер) затем не должно быть текущего дисплея (присоединенный терминал), поскольку регистры являются глобальным ресурсом. Буфер существует однажды для каждого пользователя.
Команда: материал {строка}
Материал строковая строка во входном буфере текущего окна. Это похоже на команду вставки, но с намного меньше служебным. Вы не можете вставить большие буферы с командой материала. Это является самым полезным для привязок клавиш. См. Bindkey.
, Таким образом, это работает:
screen -S session_name -X at window_number stuff ^C
screen -S session_name -X at window_number stuff ^X
и отправляет управление-c и управление-x соответственно, и можно использовать его также для объединения кодов клавиши (как управление a, d)
Если Вы хотите моделировать нажатия клавиш, аккуратный язык сценариев, "ожидают".
образец А ожидает, что сценарий мог бы быть чем-то как:
spawn $env(SHELL)
match_max 100000
send -- "screen\n"
expect eol
send -- "ls\n"
send -- "^Ad"
expect eof
Это было бы выполнено с:
expect ./myscript