Я новичок в написании сценариев оболочки и хочу использовать команду screen для автоматизации следующего сценария:
session1
и выполнить оболочку script1
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