Ssh, conserver le répertoire

Résolu
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   -  
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   -
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. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    et si tu fais
    ssh machine "cd $PWD ; $SHELL"
    1
    1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
       
      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. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      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. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
       
      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. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      un login shell (-l) exécute ~/.bash_profile, ~/.bash_login, ~/.profile si ils existent, mais pas .bashrc
      0
    5. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
       
      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
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Euh... sans vouloir te contrarier, cd $PWD, changera quoi à l'affaire ? ;-))
    0
  3. swed
     
    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
  4. swed
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    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