Назад | Перейти на главную страницу

Команда экрана в сценариях оболочки

Я новичок в написании сценариев оболочки и хочу использовать команду screen для автоматизации следующего сценария:

  1. Создать экран session1 и выполнить оболочку script1
  2. создать еще один экран session2 и выполнить другую оболочку script2, и если результат успешный, перейдите на экран session1 и возобновить script1 там, нажав Enter.

Возможно ли это с помощью экрана? пожалуйста, помогите своими предложениями, как это можно сделать.

Возможно, это возможно, но я понятия не имею, зачем вам это нужно.

Все зависит от того, попытка ли это автоматизировать существующие сценарии, или это что-то, что вы написали с нуля, или архитектура нового продукта полностью?

Если это первое, я бы сказал, что было бы проще отредактировать существующие сценарии (вы уверены, что они действительно сценарии?), Чтобы не ждать так, или интегрировать логику из одного в другой.

Если последнее, то вы делаете это неправильно и должны использовать какой-то другой механизм IPC (межпроцессного взаимодействия), который не включает нажатия клавиш.

Ты можешь использовать screen -X stuff '\n' для отправки перевода строки в текущий сеанс экрана.

Я бы написал сценарий оболочки, который запускает script2и отправляет перевод строки в session1 если сценарий завершается успешно:

#!/bin/bash
./script2 && screen -S session1 -X stuff '\n'

Следующие две команды теперь будут делать то, что вы хотите:

screen -S session1 -d -m ./script1
screen -S session2 ./wrapper