2010-06-29 84 views
0

我正在使用SharpSSH連接到SSH服務器,我試過使用SshShell和SshExec。 我需要能夠接受一系列命令並將它們按順序發送到服務器,所以SshShell並沒有真正做我所需要的,因爲我必須在整個時間內對流進行處理,似乎它會有點的一個kludge。所以我嘗試了SshExec,但發現它有一個問題,每次我發送一個命令時,它似乎正在創建一個新的連接並丟失最後一個命令的上下文。例如,如果我跑以下命令:SharpSSH與持續ShellExec連接

pwd 
cd .ssh 
pwd 

我會期待它輸出

/home/adam 

/home/adam/.ssh 

但是,相反它只是。OUPUTS「/家/亞當」兩次,這意味着該目錄變更爲迷失在兩者之間。

有沒有一種方法可以配置它,以便它保持與SSH服務器的連接,直到我告訴它斷開連接?

回答

1

要切換到隱藏目錄(以點(。)字符開頭的任何目錄),您需要將該值放在引號中。

根據the documentation

4)如果目錄操作數的所述第一組分是點或點 - 點,則進入步驟6。

6)設定curpath由形成的串PWD的值,斜線字符和操作數的串接。

總之,cd '.ssh'應該做的伎倆。

+0

我拼寫錯誤,而這僅僅是一個例子。這個問題仍然是相同的,雖然...你想要的任何例子,上下文不會持續。 – 2010-06-29 17:01:46

2

這樣做:

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

我不知道該怎麼辦高級的命令,但我想,它輸出:

/Users/MyUser 
/Users/MyUser/Desktop 
+0

這正是我必須做的,才能使這個工作。謝謝! – BrMcMullin 2011-03-15 20:53:52