单声道Process.Start如何findbash?

在我的webapp我做下面。 我知道它是正确的,因为我试过1)倾倒start_sz到一个文本文件2)苏www数据3)复制/粘贴提取string,它的工作。

var start_sz = string.Format(@"bash -c 'ln ""{2}/{0}"" ""{2}/{1}""'", fn, newfn, System.IO.Directory.GetCurrentDirectory()); Process.Start(start_sz); 

我得到的例外如下推理以上我相信它说的bash无法find。

找不到指定的文件

在System.Diagnostics.Process.Start_shell(System.Diagnostics.ProcessStartInfo startInfo,System.Diagnostics.Process过程)[0x00000] in:0

在System.Diagnostics.Process.Start_common(System.Diagnostics.ProcessStartInfo startInfo,System.Diagnostics.Process进程)[0x00000] in:0

在System.Diagnostics.Process.Start(System.Diagnostics.ProcessStartInfo startInfo)[0x00000] in:0

在System.Diagnostics.Process.Start(System.String文件名)[0x00000]中:0

在MySite.QueueManager.MakeLink(System.String fn)[0x00000] in:0

在MySite.QueueManager.ImageQueue2()[0x00000] in:0

在MySite.QueueManager.ImageQueue()[0x00000]中:0

那么,我该如何解决这个问题呢? 基本上我需要在我的asp.net应用程序运行时创build一个硬链接(软也没关系)。

我想也许我需要完整的bashpath,所以我尝试了/bin/bash -c但是也没有工作。

为什么不直接调用ln ? 没有bash

 Process.Start("ln", params); 

你也可能需要指定完整的路径:

 Process.Start("/bin/ln", params); 

实际上, Process.Start("bash")适用于我,因此检查$PATH环境变量等。

不,你知道从外壳使用它是正确 。 与Process.Start不同的是,shell会考虑这个路径。

只需指定bash的完整路径,几乎肯定是/bin/bash