Jak sprawić, żeby ekran GNU nie uruchamiał się w moim katalogu domowym w OS X?

11

GNU Screen ( screen) zachowuje się inaczej w OS X 10.5 (Leopard) i 10.6 (Snow Leopard) w porównaniu do Linuksa (przynajmniej Ubuntu, Red Hat i Gentoo) i OS X 10.4 (Tiger). W wersjach 10.5 i 10.6 nowe ekrany (wykonane przy pomocy screenlub ^A c) zawsze umieszczają mnie w katalogu domowym ~. W systemach Linux i OS X Tiger nowe ekrany mają miejsce, pwdw którym ekran został pierwotnie utworzony.

Wymyślone przykłady ilustrujące to, co mam na myśli:

Tygrys:

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

Leopard, Snow Leopard:

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

Jak sprawić, by Leopard i Snow Leopard zachowywali się tak jak kiedyś Tiger?

Benjamin Oakes
źródło

Odpowiedzi:

7

Lepszym sposobem sprawdzenia, co dokładnie jest uruchamiane podczas pisania, screenbyłoby uruchomienie command -V screen. Dzięki temu dowiesz się, czy jest uruchomiony plik binarny (w którym to przypadku zostanie podana pełna ścieżka), czy alias powłoki, funkcja itp.

Inną sprawą do sprawdzenia jest to, czy chdirw twoim ~/.screenrcsystemie jest polecenie screenrc.

jamessan
źródło
3
W końcu dowiedziałem się, co to robi. Miałem shell -$SHELLw sekcji skopiowanej od współpracownika. Problem zniknął, gdy został usunięty. Nie zachowuje się tak samo jak w Linuksie itp.
Benjamin Oakes
3

Strona screen(1)man opisuje polecenie Screenchdir .

   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. …

Konfiguracja My Screen dla sesji programowania obejmuje polecenie

chdir "$HOME/Projects"
duży nos
źródło
2

Pierwszym krokiem jest upewnienie się, że ekran nie jest aliasem.

Wpisz aliasi wyszukaj screen. Ostrzegam, że ta lista może być długa. Możesz wpisać, alias | grep screenaby oddzielić pszenicę od plew.

Jeśli screenokaże się alias dla czegoś takiego, cd ~ && screenmożesz to usunąć za pomocą unalias screen.

jedenaście81
źródło
Jeszcze lepiej: użyjtype screen
thiagowfx