2016-09-13 2 views
0

Итак, для моего скрипта я хочу ssh на удаленный хост и остаюсь на удаленном узле после завершения скрипта, а также изменить каталог в соответствии с удаленным хостом, когда конец скрипта.Скрипт Ksh: как остаться в ssh и продолжить скрипт

#!/bin/ksh 

ssh -t -X [email protected] 'cd $HOME/bin/folder1; echo $PWD; ssh -q -X ssh [email protected]; cd $HOME/bin/folder2; echo $PWD' 

PWD изменен правильно перед вторым ssh. Причина второго ssh заключается в том, что он заканчивает скрипт на правильном удаленном хосте, но он не сохранит изменения в каталоге, которые я попытался, поместив в него команды, но они не будут выполняться.

У кого-нибудь есть идеи?

+1

Какую задачу вы хотите решить? Похоже, вам нужна утилита 'screen' –

+0

Мой скрипт sshs snd выполняет анализ данных и выводит его в папку на удаленном хосте. Когда сценарий окончен, пользователь загружается из удаленного хоста. Я хочу, чтобы пользователь оставался на удаленном хосте и находился в каталоге, в котором был выполнен анализ данных. – BennyBen

ответ

1

Просто запустите оболочку в конце списка команд:

ssh -t -X [email protected] 'cd $HOME/bin/folder1; echo $PWD; ssh -q -X ssh [email protected]; cd $HOME/bin/folder2; echo $PWD; ksh' 

Если вы хотите, чтобы оболочка быть Логин один (то есть один, который читает .profile), используйте exec -l:

ssh -t -X [email protected] 'cd $HOME/bin/folder1; exec -l ksh' 

Если удаленный сервер использует старую версию ksh, которая не поддерживает встроенный exec -l, и если доступно bash или ksh93, вот обходное решение:

ssh -t -X [email protected] 'cd $HOME/bin/folder1; exec bash -c "exec -l ksh"' 
+0

Это действительно работает: ssh -t -X mylogin @ myremotemachine 'cd $ HOME/bin/folder1; ksh ' , но как заставить его выглядеть как оригинальная оболочка вместо основной? Я думаю, мне нужно выполнить .profile теперь, как я могу добавить это в эту команду, не заставляя пользователя вводить его все время? – BennyBen

+0

Я получаю сообщение ksh: -l: not found. – BennyBen

+0

В какой ОС работает удаленный хост и какая версия 'ksh'? – jlliagre

Смежные вопросы