4

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

ОБНОВИТЬ

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

1 ответ1

5

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

screen command1
screen command2
screen command3

и затем запустите screen с параметром -c за которым следует имя этого файла, например,

screen -c myscreenrc

ОБНОВИТЬ

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

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

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

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

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

. ~/.bashrc
top

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

screen bash --rcfile ~/runtop -i

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

screen -c screenrc

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .