2014-09-23 77 views
0

難以理解爲什麼「cd ..」在Tamir.ssh中不執行。 所有其他命令,我需要運行良好.. 是否有其他人遇到同樣的問題,如果是的話,請問是什麼修復?下面更改目錄「cd」在Tamir.ssh中失敗

SshExec exec = new SshExec("192.168.0.1", "admin", "haha"); 
exec.Connect(); 
string stdOut = null; 
string stdError = null; 
exec.RunCommand("cd ..", ref stdOut, ref stdError); 
+0

爲什麼你認爲cd命令不執行?你有錯誤嗎?什麼是錯誤? – Kenster 2014-09-23 10:24:17

+0

,因爲當我在「cd ..」之前和之後也執行了「pwd」命令時,路徑仍然是相同的。當我希望導航到正確的目錄時,還會得到「文件不存在」.. – user3089049 2014-09-23 13:47:12

回答

0
exec.RunCommand("cd ..", ref stdOut, ref stdError); 

相關位到RunCommand()每個呼叫將創建獨立於其它運行一個單獨的信道。在通常情況下(通過ssh連接到unix服務器),每個通道將調用一個單獨的shell實例。在一個通道中運行的命令如cd不會影響在不同通道中啓動的後續命令。

要做你想做的事情,你必須安排在同一個RunCommand調用中運行命令序列。假設遠程服務器是UNIX服務器調用像bash一個shell,你可以使用shell語法,例如:

sshExec.RunCommand("pwd && cd .. && pwd", ref out, ref err);