bash 管道 - 我正在尝试从 C# 调用脚本

2024-02-15

我有一个可以运行的 cygwin bash 脚本:

#!/bin/sh
cd myc
cp Stats.txt Stats.txt.cpy;
cat Stats.txt.cpy | sort -n -k1 | gawk '{sum+=$2; print $0,sum}' > Stats.txt

我想从 C# 中“调用”它:

string cmd="myscript.sh";
System.Diagnostics.Process proc = new System.Diagnostics.Process();

System.Diagnostics.ProcessStartInfo psi =
    new System.Diagnostics.ProcessStartInfo(@"C:\Cygwin\bin\bash.exe");
psi.Arguments = cmd;
psi.WorkingDirectory = "C:\\cygwin\\home\\Moon";
psi.RedirectStandardOutput = true;
psi.RedirectStandardError = true;
psi.UseShellExecute = false;
psi.CreateNoWindow = true;
proc.StartInfo = psi;

proc.Start();
string error = proc.StandardError.ReadToEnd();
string output = proc.StandardOutput.ReadToEnd();
this.textBox1.AppendText(error);
this.textBox1.AppendText(output);

它在 cygwin 终端上运行良好BUT从 C# 我得到:

输入文件指定两次。

我怀疑这是管道问题 - 有人可以帮忙吗?


这是一个路径问题。

您需要在脚本中设置路径 - 否则它会使用不同的“非 cygwin”路径并获取错误的命令。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

bash 管道 - 我正在尝试从 C# 调用脚本 的相关文章

随机推荐