替代bash窗口/或帮助cygwin具体的任务

我的目标是:创build一套脚本来执行一些常见的系统任务,其中包括这些任务

  • 复制/移动/列表/search/ grep文件
  • 观看/开始/停止过程
  • 通过sqlplus运行对Oracle的查询

我习惯于使用Cygwin / bash来减轻我工作中的生活,坦率地说,我不想从bash语言中移开,例如开始学习PowerShell,所以我开始寻找一种方法来运行bash脚本Windows,…最好是替代Cygwin的东西。

事实是,我对Cygwin的安装仍然不满意,事实上没有简单的方法,它针对的是或多或less的专家用户,并且在安装过程中可能会popup一些事情。 我的意思是。 我现在要做的是编写一套脚本,这些脚本将针对比我更不专业的人(而且我绝不是真正的专家) – 在大多数情况下,某种pipe理员不想知道脚本细节。

我在想,这个用户也希望能够在另一台机器上运行这些脚本,我想能够解释他/她如何去做,而不是只是说,呼叫支持,最后,我所以我们可以在另一台机器上安装cygwin等)

我尝试了MinGW(msys),但它也需要手动步骤来设置的东西 – 我的意思是,这些手动步骤已成为这些Windows端口事实上的标准(对不起,也许我有一个吹牛的心情)。 win-bash看起来可能是一个解决scheme,但是我也因为旧的bash版本而结束了它,并且无法做到我在cygwin中能够做的事情 – 特别是

  • 这里是文件
  • 例如“cmd / C dir *”(不知道为什么) – 是的,我做cmd / C dir的情况下,我在某种共享的networking文件夹与数以千计的文件,并且ls是比dir

我的问题最后:

  • 我注定要使用PowerShell? 我想我会,不情愿,如果我必须
  • 有没有一个简单的预打包“苗条”cygwin安装..或者,可移植的cygwin,甚至更好? 在sourceforge上有一个可移植的cygwin项目,但并不是不需要这些手动步骤,显然,是否有办法自动执行这些步骤呢? 如果有的话,我想知道为什么有人还没有做到这一点? – 然后,是否有可能使用一个简单的命令,如“bash somescript.sh”,从Windows命令提示符调用bash脚本?

感谢您的关注。

如上所述,Cygwin安装完全可以脚本化和参数化,以静默和自动模式运行。

如果你定义了你所需要的cygwin包的最小列表,只需使用一个叫做cygmin安装程序可执行文件的.bat脚本就可以了

setup.exe --packages=list_of_packages_you_need --quiet-mode

如果你打包cygwin安装过程,那么对于技术性较差的用户应该是可以忍受的。

cygwin安装可以使用命令行参数进行简化; http://sources.redhat.com/ml/cygwin-apps/2003-03/msg00526.html

你也可以通过cyg-apt自动安装大部分的cygwin包。

我还没有证实这一点,但我怀疑,通过创建系统命令的Windows可执行版本,msys实现了* nix看起来相似。 所有的常用命令在我安装的msys上都有一个可执行文件。 如果这是真的,那么应该可以将它们与完整安装分开使用。

尝试将“bash.exe”,“cp.exe”等从msys bin目录复制到没有安装msys的机器/ vm中,并查看它是否正常工作。 您可能还需要复制一些dll或共享库。 一个Windows依赖检查程序将显示哪个DLL的可执行文件正在使用。

你可以打包你使用的东西,做一个简单的安装程序或只是复制文件与脚本。

看看MKS工具包 。 不像Cygwin,它可以生活在Windows世界。 文件以CR / LF结尾,就像Windows文件一样,而你没有这个/ cygdrive / c的东西。 MKS工具包中的裸盘驱动器信号正常工作。

几点注意事项:

  • 我很久没有使用MKS Toolkit了。 看下面的原因。
  • MKS工具包是(坐下来)每个许可证$ 600。 哎哟! 这就是为什么我使用Cygwin,即使我认为它不是很好或者工作得很好。
  • 这是基于Kornshell而不是Bash(虽然这可能有点不同)。 Kornshell和BASH有95%的相似。 但是,最后5%得到你。 我在很多方面都比BASH更喜欢Kornshell。 Kornshell的print语句优于echo语句。 变量名称不会消失在块中。 你可以很容易地做双循环,因为几乎所有的命令都可以取unit数的输入和输出。 但是,Kornshell在提示符中没有那些整齐的转义字符,很难在管道中间找到一个命令的退出状态。