Получение настройки, значения chdir, из экрана GNU

617
dlamblin

Я использовал команду screen's, chdirчтобы установить новый рабочий каталог для новых окон, подробнее об этом позже. Что мне нужно сделать, это выяснить, что за настройка была до того, как я установил ее, чтобы я мог установить ее обратно. Я могу сделать это экспериментально, начав новый сеанс и повторив его, $PWDно я не могу сделать это более конкретно таким образом, чтобы я мог получить и сохранить значение в сценарии. Я чувствую, что, возможно, есть какая-то команда на очень подробной странице справочника, которая выполнит это, но я еще не нашел ее.

Теперь, чтобы объяснить, что именно я делаю, это требует: у
меня есть скрипт, который запускает около 4 процессов параллельно, оказывается очень удобно, чтобы каждый из них запускался в своем собственном screenокне. В скрипте bash легко определить, что я запускаю скрипт в screenэтом тесте: if [[ $TERM =~ screen* ]]; thenесть другие способы, но этот подойдет. В сценарии я могу выполнить screen -x -X screen process1. Это присоединяет к текущему сеансу в многопользовательском режиме и просит его открыть новыйscreen окно, запускающее процесс. Это необходимо изнутри скрипта, потому что без -x он будет жаловаться на то, что текущая команда не выполняется в терминале, что правильно, она не интерактивна. В любом случае, процесс1 должен работать по определенному пути. Не один, а один из любых четырех или пяти, где разные версии процесса1. Я запускаю сценарий с этого пути. Ноscreenчасто не запускается по этому пути, поэтому process1 будет запускаться в новом рабочем каталоге, указанном там, где он screenбыл запущен. Нет проблем, просто выполните screen -x -X chdir $PWDперед запуском process1 (2, 3 и 4), и теперь вы на правильном пути. Однако вы навсегда изменились перед выходом. Тем не менее, я не могу выяснить, что было, и, честно говоря, это могло быть что угодно, ничто не так просто, как определенно . Если вы все еще читаете и задаетесь вопросом, каков был мой вопрос, это был вопрос из первого абзаца, как я могу узнать текущую настройку?screen рабочий путь по умолчанию для нового окна, это расстроит пользователя (меня и некоторых коллег). Так что не должно быть никаких проблем с выдачейscreen -x -X chdir $oldCHDIR$oldCHDIR$HOMEscreenchdir

0
Почему бы не запустить подоболочку перед сменой? Ignacio Vazquez-Abrams 12 лет назад 0
Запуск subshell позволит вам изменить каталог в subshell и оставить экран в покое. Ignacio Vazquez-Abrams 12 лет назад 0
Поэтому я бы назвал: `screen -x -X screen bash -c 'cd' $ PWD '; process1'`. Это бы сработало. Это обходной путь для определения настройки `chdir`, который, я думаю, должен быть где-то возможным. dlamblin 12 лет назад 0
Конечно, сейчас никто не ответит на актуальный вопрос. Вот почему вы никогда не должны объяснять себя. Я действительно не хочу просто решить эту проблему. В качестве вопроса я хочу узнать, могу ли я получить настройку, например, значение, установленное для `chdir` вне` экрана`. Ответ может быть да, вот как или нет. Слишком часто я получаю это: почему бы не сделать что-то совершенно другое. Это прекрасно, когда есть веская причина. Но в этом случае он замедляет запуск каждого процесса и использует больше памяти. dlamblin 12 лет назад 0

0 ответов на вопрос

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