экранная автоматизация гну

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

ОБНОВЛЕНИЕ

экранные окна не должны закрыться после выполнения команд, я просто хочу иметь экранную сохраненную сессию (и отсоединился),

4
задан 12.10.2010, 10:05

1 ответ

Можно поместить команды в файл, например, myscreenrc, как это:

screen command1
screen command2
screen command3

и затем выполнитесь screen с -c опция, сопровождаемая под названием тот файл, например,

screen -c myscreenrc

ОБНОВЛЕНИЕ

в reponse к обновленному вопросу. Команды, которые я использовал для тестирования, были screen vim foo и screen vim bar, таким образом, я не видел закрывающей экран проблемы. Следующее решает закрывающую экран проблему, но это кажется чем-то вроде клуджа.

screen bash -c 'ls foo; exec bash -i'
screen bash -c 'ls bar; exec bash -i'

ls была просто удобная команда для тестирования этой проблемы.

ОБНОВЛЕНИЕ № 2

Другой подход должен был бы запустить команду из емкостно-резистивного файла оболочки, а не из емкостно-резистивного файла экрана. Это требует другого файла для каждой команды, все же. Например, для выполнения top в a screen окно, таким образом, что выход top возвратит Вас a bash подсказка в том же самом окне, создайте файл, назовите его runtop, это содержит следующее:

. ~/.bashrc
top

Затем поместите эту строку в файл, который мы называем screenrc:

screen bash --rcfile ~/runtop -i

и запустите screen как

screen -c screenrc
5
ответ дан 07.12.2019, 20:26

Теги

Похожие вопросы