Как мне заставить экран GNU не запускаться в моем домашнем каталоге в OS X?

11

GNU Screen ( screen) ведет себя по-разному в OS X 10.5 (Leopard) и 10.6 (Snow Leopard) по сравнению с Linux (по крайней мере, Ubuntu, Red Hat и Gentoo) и OS X 10.4 (Tiger). В 10.5 и 10.6 новые экраны (сделанные с помощью screenили ^A c) всегда помещают меня в мой домашний каталог ~. В Linux и OS X Tiger новые экраны имеют то место, pwdгде экран был создан изначально.

Придумайте примеры, чтобы проиллюстрировать, что я имею в виду:

Tiger:

$ cd ~/foo
$ pwd
/Users/ben/foo
$ screen
$ pwd
/Users/ben/foo
$ screen # or ^A c
$ pwd
/Users/ben/foo

Леопард, Снежный Барс:

$ cd ~/foo
$ pwd
/Users/ben/foo
$ screen
$ pwd
/Users/ben
$ screen # or ^A c
$ pwd
/Users/ben

Как заставить Леопарда и Снежного Барса вести себя так, как привыкли Тигры?

Benjamin Oakes
источник

Ответы:

7

Лучший способ проверить, что именно запускается при вводе screen, - запуск command -V screen. Это скажет вам, запускает ли он двоичный файл (в этом случае будет указан полный путь) или псевдоним оболочки, функцию и т. Д.

Еще одна вещь, чтобы проверить, есть ли chdirкоманда в вашей ~/.screenrcили во всей системе screenrc.

jamessan
источник
3
Наконец-то узнал, что делал. Я shell -$SHELLв разделе скопировал с коллеги. Проблема ушла, когда она была удалена. Он ведет себя не так, как в Linux и т. Д.
Бенджамин Оукс
3

screen(1)Страница людей описывает на экране chdirкоманду .

   chdir [directory]

   Change the current directory of screen to the specified directory or,
   if called without an argument, to your home  directory  (the  value  of  the
   environment  variable  $HOME).  All windows that are created by means of the
   "screen" command from within ".screenrc" or by means of "C-a : screen
   ..." or "C-a c" use this as their default directory.  Without a chdir command,
   this would be the directory from which screen was  invoked. …

Конфигурация My Screen для сеанса программирования включает команду

chdir "$HOME/Projects"
большой нос
источник
2

Первый шаг - убедиться, что экран не является псевдонимом.

Введите aliasи ищите screen. Имейте в виду, что этот список может быть длинным. Вы можете печатать, alias | grep screenчтобы отделить пшеницу от мякины.

Если screenэто псевдоним для чего-то подобного, cd ~ && screenвы можете удалить это, используя unalias screen.

eleven81
источник
Еще лучше: используйтеtype screen
thiagowfx