【问题标题】:On Jenkins how can you detect if a server is Windows vs. Linux?在 Jenkins 上,您如何检测服务器是 Windows 还是 Linux?
【发布时间】:2019-07-13 09:19:49
【问题描述】:

在 Jenkins 上,我使用的是 Conditional BuildStep 插件。有没有办法让它运行一些构建步骤,具体取决于它运行的从节点是 Windows 还是 Linux?

【问题讨论】:

    标签: linux windows jenkins operating-system


    【解决方案1】:

    您可以使用 jenkins 中提供的 isUn​​ix() 函数来识别操作系统类型。

    所以你可以在脚本块下的 jenkinsfile 中使用类似下面的内容:-

     if (isUnix()) {
        sh 'ls -la'
    } else {
        bat 'dir'
    }
    

    【讨论】:

    • 谢谢!很高兴知道。但有时我需要知道它是哪个操作系统才能运行 Windows Batch 命令与 shell 命令。所以我需要在脚本块之外知道。这就是我一直在使用 Conditional BuildStep 插件的原因。
    【解决方案2】:

    要仅在当前服务器为 Windows 时运行命令,请使用 Conditional BuildStep 插件进行检查:

    Strings match:
     String 1: ${ENV,var="OS"}
     String 2: Windows_NT
    

    仅当当前服务器是 Linux 时才运行命令,检查:

    Strings match:
     String 1: ${ENV,var="OS"}
     String 2:
    

    (将字符串 2 留空。)

    【讨论】:

      猜你喜欢
      • 2012-12-26
      • 1970-01-01
      • 1970-01-01
      • 2014-07-04
      • 2011-01-26
      • 2019-03-11
      • 1970-01-01
      • 2018-03-20
      • 1970-01-01
      相关资源
      最近更新 更多