2010-06-29 69 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