【问题标题】:How to run Linux shell script on windows environment如何在 windows 环境下运行 Linux shell 脚本
【发布时间】:2012-05-21 19:54:48
【问题描述】:

我有在 Redhat 操作系统上运行的管家脚本。

我有一个要求,我想在 Windows 环境中运行相同的脚本。

所以我有 3 个选项

  1. 为 windows 编写新脚本
  2. 使用一些工具将 Linux 脚本转换为 windows 脚本。
  3. 使用 Cygwin 并运行脚本,而不对 linux 脚本进行任何更改。

所以我想知道什么是最好的选择。

提前感谢您的帮助

【问题讨论】:

  • 这取决于脚本的作用……windows批处理不如shell脚本强大。当然,如果你了解它们,你可以使用 javascript 或 powershell。
  • 使用 java-script 或 power shell 的含义来选择选项 1 对吗?
  • 没错,但使用正确的工具完成正确的任务会有所帮助。看看 robocopy,它很容易在简单的 .cmd / .bat 中使用,并且可能只用一条线就可以解决您的整个问题。
  • 如果没有关于脚本的一些细节,最好是完整地看到它,就不可能说出正确的方法是什么。你依赖什么命令?其中,哪些是标准工具,哪些是特定于 RH 的工具?您是否触摸任何文件以及如何引用文件路径?所有这些问题都需要回答。

标签: linux bash shell batch-file


【解决方案1】:

这取决于脚本的复杂程度、您是否要对其进行更改以及现有脚本使用的实用程序。

如果脚本非常复杂,最好保留原版并使用 Cygwin。

如果你想维护脚本和端口来回更改,你会想要使用原始的(并使用 Cygwin)

如果脚本使用了一些尚未移植到 Cygwin 的 Unix 实用程序,您要么需要自己进行移植(以便能够保留原始脚本),要么将脚本转换为使用 Windows 等效(或类似)程序

所以我建议你在大多数情况下使用 Cygwin,除非脚本很容易转换为 Windows 批处理格式

【讨论】:

    【解决方案2】:

    如评论中所述,我想看看或知道脚本的作用。 在 Windows 下,现在有几个脚本选项。 (Powershell、vbscript、javascript、普通的旧批处理文件),但实际上这取决于原始脚本的作用。

    恕我直言,安装整个 cygwin 或 bash 移植只是为了移动文件或执行其他琐碎任务。

    【讨论】:

    • 原始脚本是一个内务脚本,用于删除旧日志文件并归档超过给定时间段的日志文件
    • robocopy(管理文件副本的好工具)可以满足您的需求。
    【解决方案3】:

    4: 为 windows 安装一个 BASH 端口,例如win-bash
    5:使用SUA/SFU,见this link

    【讨论】:

      【解决方案4】:

      我会推荐选项 3,它是在 windows 下运行相同脚本(假设脚本 = bash 脚本)的唯一方法。

      【讨论】:

      • 当我选择该选项时,我需要将脚本作为 cronjob 运行,那么如何使用 cygwin 来执行此操作。你有答案吗? cronjob 在 cygwin 中不可用
      【解决方案5】:

      你可以试试colinux

      http://www.colinux.org/

      Cooperative Linux 是第一个可以运行的免费开源方法 以最佳方式在 Microsoft Windows 上本地运行 Linux。更普遍, Cooperative Linux(简称 coLinux)是 Linux 内核的一个移植版 允许它与另一个操作系统协同运行 在一台机器上。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-28
        • 2015-03-07
        • 2019-03-15
        • 1970-01-01
        • 2018-05-23
        相关资源
        最近更新 更多