我的目标是:创build一套脚本来执行一些常见的系统任务,其中包括这些任务
我习惯于使用Cygwin / bash来减轻我工作中的生活,坦率地说,我不想从bash语言中移开,例如开始学习PowerShell,所以我开始寻找一种方法来运行bash脚本Windows,…最好是替代Cygwin的东西。
事实是,我对Cygwin的安装仍然不满意,事实上没有简单的方法,它针对的是或多或less的专家用户,并且在安装过程中可能会popup一些事情。 我的意思是。 我现在要做的是编写一套脚本,这些脚本将针对比我更不专业的人(而且我绝不是真正的专家) – 在大多数情况下,某种pipe理员不想知道脚本细节。
我在想,这个用户也希望能够在另一台机器上运行这些脚本,我想能够解释他/她如何去做,而不是只是说,呼叫支持,最后,我所以我们可以在另一台机器上安装cygwin等)
我尝试了MinGW(msys),但它也需要手动步骤来设置的东西 – 我的意思是,这些手动步骤已成为这些Windows端口事实上的标准(对不起,也许我有一个吹牛的心情)。 win-bash看起来可能是一个解决scheme,但是我也因为旧的bash版本而结束了它,并且无法做到我在cygwin中能够做的事情 – 特别是
我的问题最后:
感谢您的关注。
如上所述,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工具包中的裸盘驱动器信号正常工作。
几点注意事项:
print
语句优于echo
语句。 变量名称不会消失在块中。 你可以很容易地做双循环,因为几乎所有的命令都可以取unit
数的输入和输出。 但是,Kornshell在提示符中没有那些整齐的转义字符,很难在管道中间找到一个命令的退出状态。