我正在构建一个使用Cygwin在Windows 10上执行Shell脚本的桌面应用程序。理想情况下,用户无需安装Cygwin,因为我将相关的exe文件放入了我的项目中。我的项目中有Cygwin的“ sh.exe”,我可以在没有绝对路径的情况下调用它,并且似乎正在运行grep,zcat,awk等,而没有任何问题。
似乎我遇到了https://www.question-defense.com/2010/08/25/windows-7-cygwin-sort-input-file-specified-two-times中解释的问题,其中Window的cmd使用的是自己的排序方式,而不是Cygwin的sort.exe,您必须在脚本中放入sort.exe的路径。因此,用户似乎必须下载Cygwin,这在一定程度上违背了我的项目目的,因为我希望为用户提供无忧的体验。我不希望他们必须下载依赖项。
我想到的唯一解决方法是在项目中包括sort.exe并将脚本中的“ sort”字符串替换为sort.exe的Windows路径,我认为它将位于目录中用户启动了该应用程序;也许是System.getProperty(“ user.dir”)。
有更好的解决方案吗?
MobaXTerm似乎已经掌握了。他们有一个CygUtils插件,您必须下载并放置在正确的位置,但是我想对于他们来说,将应用程序与CygUtils一同提供并不难。我正在尝试做类似的事情。
答案 0 :(得分:0)
在使用Cygwin时,我遇到了同样的问题。 我将[cygwin64_folder] \ bin \ sort 文件重命名为 csort (或其他方便的名称,如果需要的话),并使用了 csort 命令。