SharpSSH с постоянными подключениями ShellExec - PullRequest
1 голос
/ 29 июня 2010

Я использую SharpSSH для подключения к SSH-серверу, и я пытался использовать как SshShell, так и SshExec. Мне нужно иметь возможность принимать серию команд и отправлять их на сервер по порядку, поэтому SshShell на самом деле не делает то, что мне нужно, потому что мне придется все время крутить потоки, и кажется, что Кладж. Итак, я попробовал SshExec, но обнаружил одну проблему с ним: каждый раз, когда я отправляю команду, создается впечатление, что она устанавливает новое соединение и теряет контекст последней команды. Например, если я выполнил следующие команды:

pwd
cd .ssh
pwd

Я ожидал бы, что это выведет

/home/adam

/home/adam/.ssh

Но вместо этого он просто выводит "/ home / adam" оба раза, что означает, что изменение каталога было потеряно в промежутке.

Есть ли способ настроить это так, чтобы он поддерживал постоянное соединение с сервером SSH, пока я не скажу ему отключиться?

Ответы [ 2 ]

2 голосов
/ 20 января 2011

Сделайте это:

exec.RunCommand("pwd; cd Desktop; pwd")

Я не уверен, как выполнять расширенные команды, но я попробовал это, и он выдает:

/Users/MyUser
/Users/MyUser/Desktop
1 голос
/ 29 июня 2010

Чтобы перейти в скрытый каталог (любой каталог, начинающийся с точки (.)), Вам необходимо заключить значение в кавычки.

Согласно документации :

4) Если первым компонентом операнда каталога является точка или точка-точка, перейдите к шагу 6. ​​

6) Установите значение curpath для строки, образованной объединением значения PWD, символа косой черты и операнда.

Короче говоря, cd '.ssh' должен добиться цели.

...