2014-02-21 55 views
0

我想從C#程序在Linux服務器上執行腳本,我有一個示例代碼如下。SSH.NET C#發送是或否到linux服務器

var ssh = new SshClient("ip", "user", "password"); 
var cmd = ssh .CreateCommand("./executescript"); 
cmd.BeginExecute(); 
var reader = new StreamReader(cmd.OutputStream); 
var result = reader.ReadToEnd(); 

但我不能完成執行腳本,因爲它會問一個問題,如'你想這樣做嗎?是或否「,我如何從C#向Linux發送」是「或」否「?

任何人都可以給我一些建議嗎?還是有任何提示?

+0

你試過'ssh.RunCommand(「是」)嗎?它可能工作。 –

+0

你好,它不工作...我發現SSH期望可以解決這個問題。非常感謝。 – Damon

回答

0

試試這個代碼

  SshShell shell = new SshShell(<host>, username, pass); 
      shell.Connect(); 
      shell.RemoveTerminalEmulationCharacters = true; 
      string outputt = shell.Expect(new Regex(@"[$#>]")); 
      shell.WriteLine("cd <Path> "); 
      outputt = shell.Expect(new Regex(@"[$#>]")); 
      shell.WriteLine("nohup bash executescript.sh & "); 
      outputt = shell.Expect(new Regex(@"[$#>]")); 
      shell.WriteLine("exit"); 
      outputt = shell.Expect(new Regex(@"[$#>]")); 

      shell.Close(); 

它爲我工作。