2014-09-23 88 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);