Comment faire pour que l'écran GNU ne démarre pas dans mon répertoire personnel sous OS X?

11

GNU Screen ( screen) se comporte différemment sous OS X 10.5 (Leopard) et 10.6 (Snow Leopard) par rapport à Linux (au moins Ubuntu, Red Hat et Gentoo) et OS X 10.4 (Tiger). En 10.5 et 10.6, les nouveaux écrans (réalisés avec screenou ^A c) me placent toujours dans mon répertoire personnel ~. Sous Linux et OS X Tiger, les nouveaux écrans ont un pwdendroit où l'écran a été créé à l'origine.

Des exemples inventés pour illustrer ce que je veux dire:

Tigre:

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

Léopard, Léopard des neiges:

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

Comment puis-je faire en sorte que Leopard et Snow Leopard se comportent comme Tiger?

Benjamin Oakes
la source

Réponses:

7

Une meilleure façon de vérifier exactement ce qui est exécuté lorsque vous tapez screenserait de l'exécuter command -V screen. Cela vous dira s'il exécute un binaire (auquel cas le chemin complet sera donné) ou un alias de shell, une fonction, etc.

Une autre chose à vérifier est de savoir s'il existe une chdircommande dans votre ~/.screenrcou à l'échelle du système screenrc.

jamessan
la source
3
Enfin découvert ce qui le faisait. Je l'avais shell -$SHELLdans une section copiée d'un collègue. Le problème a disparu quand il a été supprimé. Il ne se comporte pas de la même manière que sous Linux, etc.
Benjamin Oakes
3

La screen(1)page de manuel décrit la chdircommande Screen .

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

La configuration de Mon écran pour une session de programmation inclut la commande

chdir "$HOME/Projects"
gros nez
la source
2

La première étape consiste à s'assurer que l'écran n'est pas un alias.

Tapez aliaset recherchez screen. Soyez averti que cette liste pourrait être longue. Vous voudrez peut-être taper alias | grep screenpour séparer le blé de l'ivraie.

Si screens'avère être un alias pour quelque chose comme cd ~ && screenvous pouvez le supprimer en utilisant unalias screen.

onze81
la source
Encore mieux: utilisationtype screen
thiagowfx