Для повседневной работы я подключаюсь к удаленной машине со своего Mac через VNC. Рендеринг шрифтов в средстве просмотра VNC, разрешение и т.д. Ужасны при просмотре на дисплее сетчатки. Поэтому я использую iTerm2 + ssh + screen. У меня есть несколько сеансов экрана, названных как Terminal_1, Terminal_2 и т.д. На сервере. У меня есть сценарий на сервере, который будет печатать точное имя сеанса (PID.Terminal_ *) для запрошенного сеанса или создать сеанс, если запрошенный сеанс не завершится. У меня есть функция bash на локальном Mac, которая выполняет ssh для сервера, запускает скрипт, получает сеанс экрана и «screen -x» к нему (-x, потому что я иногда делюсь сеансом с другими).

Со всеми этими настройками повторное подключение к моим сеансам экрана теперь очень просто, так как мне просто нужно набрать "r 1", "r 2" и т.д. После повторного открытия iTerm2 или после повторного подключения к сети. Поэтому я открываю несколько вкладок в iTerm2 и запускаю r 1 в первую очередь, r 2 во вторую и так далее.

Мне было интересно, есть ли способ получить номер вкладки из оболочки с интеграцией iTerm2 - Shell, так что все, что мне нужно было бы набрать, это r на каждой вкладке (r - это псевдоним для добавленной мной функции bash), или может быть даже меньше с PrecMD.

Обновление: в переменной среды ITERM_SESSION_ID=w0t2p0:xxxxx-xxxxx-xx , w и t, по-видимому, для Window и Tab. Первый имеет w0t0p0, второй имеет w0t1p0 и так далее.

1 ответ1

0

Это похоже на работу. echo ${ITERM_SESSION_ID:3:1} . Пожалуйста, кто-нибудь подскажет, есть ли лучший способ получить это.

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