单声道 Linux Shell 命令

Mono Linux Shell command

我在 Linux 中在 Mono 上执行了这个命令:

System.Diagnostics.Process.Start("snmpwalk", " -v 1 -c public " + Ip + " 1.3.6.1.2.1.25.1.1.0 > /home/dana/Desktop/test.txt")

它应该在桌面上的 .txt 文件中获取 SystemUpTime,我在应用程序输出中得到了答案,但它没有创建文件。

是否可以使用此命令在 .txt 文件中获取答案?提前致谢。

我不认为你可以通过这种方式获得输出重定向。

但是你可以这样做:

System.Diagnostics.Process proc = new System.Diagnostics.Process();

proc.Start("snmpwalk", " -v 1 -c public " + Ip + " 1.3.6.1.2.1.25.1.1.0")

//Then use the StandardOutput property of the process to read its output
string procOutput = proc.StandardOutput.ReadToEnd();

//Write the output to your file
System.IO.File.WriteAllText("/home/dana/Desktop/test.txt", output);

上面的例子需要修改

阅读 Dana 评论后,我对上面的示例进行了扩展。

System.Diagnostics.Process proc = new System.Diagnostics.Process();

//this should tell not to start a console
proc.StartInfo.UseShellExecute = False

//this should tell that you are redirecting process output
proc.StartInfo.RedirectStandardOutput = True

proc.StartInfo.FileName = "snmpwalk"
proc.StartInfo.Arguments = "-v 1 -c public " + Ip + " 1.3.6.1.2.1.25.1.1.0"

proc.Start()

//Then use the StandardOutput property of the process to read its output
string procOutput = proc.StandardOutput.ReadToEnd();

//Write the output to your file
System.IO.File.WriteAllText("/home/dana/Desktop/test.txt", output);

我试过将一个简单的 ping 输出重定向到一个文本文件并且成功了。