Como faço para que a tela GNU não inicie no meu diretório pessoal no OS X?

11

O GNU Screen ( screen) se comporta de maneira diferente no OS X 10.5 (Leopard) e 10.6 (Snow Leopard) comparado ao Linux (pelo menos Ubuntu, Red Hat e Gentoo) e OS X 10.4 (Tiger). Nas versões 10.5 e 10.6, novas telas (feitas com screenou ^A c) sempre me colocam no meu diretório pessoal ~. No Linux e no OS X Tiger, as novas telas têm um local pwdonde a tela foi criada originalmente.

Exemplos inventados para ilustrar o que quero dizer:

Tigre:

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

Leopardo, Snow Leopard:

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

Como faço para que o Leopard e o Snow Leopard se comportem como o Tiger costumava?

Benjamin Oakes
fonte

Respostas:

7

Uma maneira melhor de verificar exatamente o que está sendo executado quando você digita screenseria executar command -V screen. Isso informará se ele está executando um binário (nesse caso, o caminho completo será fornecido) ou um apelido, função, etc. do shell

Outra coisa a verificar é se existe um chdircomando no seu ~/.screenrcou em todo o sistema screenrc.

jamessan
fonte
3
Finalmente descobri o que estava fazendo isso. Eu tinha shell -$SHELLem uma seção copiada de um colega de trabalho. O problema desapareceu quando foi removido. Não se comporta da mesma maneira que no Linux etc.
Benjamin Oakes
3

A screen(1)página do manual descreve o chdircomando Tela .

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

A configuração My Screen para uma sessão de programação inclui o comando

chdir "$HOME/Projects"
nariz grande
fonte
2

O primeiro passo é garantir que a tela não seja um alias.

Digite aliase procure screen. Esteja avisado de que essa lista pode ser longa. Você pode digitar alias | grep screenpara separar o joio do trigo.

Se screenfor um alias para algo como cd ~ && screenvocê pode remover isso usando unalias screen.

onze81
fonte
Ainda melhor: usetype screen
thiagowfx 27/05