Я создал несколько screen
для запуска одного и того же фрагмента кода с разными параметрами. То, как я это делаю сейчас, это вручную присоединяю один экран, передаю команду и аргументы, а затем Ctrl a+d
отсоединяю этот экран. Затем снова присоединяю другой экран и снова передаю аргументы и отсоединяюсь от этого экрана. Возможно ли написать скрипт bash, чтобы автоматически выполнять весь этот процесс?
решение1
Создание нескольких screen
сеансов, вероятно, не лучший вариант. Screen поддерживает идею размещения нескольких окон в одном сеансе, что упрощает обработку таких коллекций. Есть и ^A 1
т ^A 2
. д. ^A '
и ^A "
для переключения между окнами и ^A w
их перечисления.
При использовании сеанса с одним экраном вы можете запустить сеанс, а затем команды внутри него, например:
#!/bin/sh
screen -d -m -S test
screen -S test -X screen -t title somecommand someargs...
screen -S test -X screen -t othertitle somecommand otherargs
screen -d -m
начинает новый отсоединенный сеанс, -S
дает сеансу имя или ссылается на него по имени. -X
отправляет оставшуюся часть командной строки как команду запущенному сеансу, а screen
команда (внутри screen
) открывает новое окно и запускает там команду. -t
может использоваться с screen
для приданияокноЗаголовок.
Или вы можете поместить команды screen
в файл, а затем использовать :source
для запуска файла (аналогично .screenrc
). Смотрите руководство для некоторых примеров и ссылок на команды, screen
которые поддерживаются. (Их полно.)