Ssh, conserver le répertoire

Résolu
Bonjour,
j'ai diverses machines, et je voudrai que lorsque je me connecte de l'une à l'autre par ssh, je retombe directement sur le répertoire courant.
je pensais faire un ssh machine "cd $PWD", mais je n'arrive pas à trouver la bonne option pour que ça fonctionne.
Merci de votre aide.
--
La vrai soumission c'est quand les esclaves s'inquiètent du cours du coton.
Char Snipeur

5 réponses

  1. Modérateur
    Salut,

    Euh... sans vouloir te contrarier, cd $PWD, changera quoi à l'affaire ? ;-))
    0
    1. Bonjour,

      D'après ce que je comprend, tu souhaite te connecter à la machine B depuis A.
      Et arriver sur B dans le même répertoire que tu étais sur A.

      Dans ton cas, le "cd $PWD" est exécuté sur la machine B, donc c'est le $PWD de B qui est pris en compte.
      Pour ça que jipicy disait qu'un "cd $PWD" ne servait à rien...

      Il faudrait faire : ssh machine "cd 'echo $PWD'"
      Pour arriver sur B dans le même répertoire que A...

      Cordialement, M.
      0
      1. PS: c'est des cotes "inverses" autour du 'echo', mais apparemment ca passe pas dans le forum...
        Je re-tente :
        ssh machine "cd 'echo $PWD'"
        0
        1. Contributeur
          ok, merci, je connais le principe.
          Chez moi, il fait le développement de variable avant d'envoyer la commande. Je fais :
          ssh -t machine "cd $PWD;pwd"
          et sur la machine distante j'ai bien le même répertoire. Le problème c'est que l'option -t ferme la connexion.
          ssh machine "cd $PWD"
          me donne l'erreur :
          stty: standard input: Invalid argument
          0
          1. hello
            et si tu fais
            ssh machine "cd $PWD ; $SHELL"
            1
            1. Contributeur
              Merci dubeck ! c'est presque ça.
              Là je n'ai pas de prompt ni mes options de shell, mais je devrais trouver.
              Ensuite, un petit script genre sshCD machine pour pas avoir à tout retaper à chaque fois et ça le fera.
              0
            2. ssaye
              $SHELL -l
              pour avoir un login shell
              parce qu'il y a une commande, il n'y a pas de vrai login, donc pas de tty
              essayie source ~/.bashrc
              mais par ex. vim ne va pas démarrer
              0
            3. Contributeur
              ssh machine "cd $PWD ; $SHELL -li"
              fonctionne pas trop mal (vi fonctionne même si il râle). Je ne charge pas le bon fichier .basrc.perso, mais c'est à cause d'une sauce propre au système.
              Je ne vois pas comment passer ton source...
              0
            4. un login shell (-l) exécute ~/.bash_profile, ~/.bash_login, ~/.profile si ils existent, mais pas .bashrc
              0
            5. Contributeur
              Bien vu ! ça explique pas mal de chose que j'avais du mal à comprendre !
              Par contre, avec juste -i, je n'ai pas l'historique et tout le toutim. (ton histoire de tty je pense)
              J'ai trouver, l'option -t donne ce que j'attends. Donc, en résumé :
              ssh -t <machine> "cd $PWD;$SHELL -i"
              Et en plus de ça je n'ai plus qu'un seul "exit" à faire pour quitter la machine. Parfait !
              0