jenkins传参数到shell

2025-11-19 23:36:15

在 Jenkins 中传递参数到 Shell 脚本,通常可以通过 Jenkins Pipeline 的参数传递机制实现。以下是几种常见的方式:

jenkins传参数到shell

✅ 1. 使用 Jenkins Pipeline 的 parameters 传递参数

示例:在 Jenkins Pipeline 中传递参数

pipeline {
    agent any

    parameters {
        string(name: 'ENV', description: 'Environment (dev, test, prod)')
        string(name: 'PARAM', description: 'Custom parameter')
    }

    stages {
        stage('Build') {
            steps {
                sh 'echo "Environment: ${ENV}, Parameter: ${PARAM}"'
            }
        }
    }
}

说明:

  • parameters 中定义了两个参数:ENVPARAM
  • 在 Jenkins 的 Pipeline 中,可以通过 env.ENVenv.PARAM 获取参数值。
  • 可以在任意 shscript 中使用这些变量。

✅ 2. 使用 Jenkins API 传递参数(适用于自定义脚本)

如果你需要在 Jenkins 脚本中直接传递参数(比如在 sh 命令中),可以使用 Jenkins APIparams

#!/bin/bash

# 获取 Jenkins 参数
ENV=${JENKINS_PARAMS:ENV}
PARAM=${JENKINS_PARAMS:PARAM}

echo "Environment: $ENV, Parameter: $PARAM"

注意:

  • 这种方式通常用于 Jenkins 自定义脚本(如 Jenkinsfile 中的 sh 命令)。
  • 需要确保 Jenkins 脚本有权限访问 JENKINS_PARAMS 环境变量。

✅ 3. 使用 Jenkinsparameters 传递参数到外部脚本

你可以将 Jenkins 的参数通过 env 传递到外部脚本中,例如:

#!/bin/bash

# 从 Jenkins 获取参数
ENV=${env:ENV}
PARAM=${env:PARAM}

echo "Environment: $ENV, Parameter: $PARAM"

使用方式:

在 Jenkins 的 Pipeline 中,将此脚本保存为 .sh 文件,然后在 Pipeline 中调用:

stage('Run script') {
    steps {
        sh './my_script.sh'
    }
}

✅ 4. 使用 Jenkins Pipelineparameters 传递参数到 sh 命令

stage('Run Command') {
    steps {
        sh """
            echo "Environment: ${env.ENV}, Parameter: ${env.PARAM}"
        """
    }
}

✅ 5. 使用 Jenkinsparameters 传递参数到 script

stage('Run script') {
    steps {
        script {
            ENV = env.ENV
            PARAM = env.PARAM
            echo "Environment: $ENV, Parameter: $PARAM"
        }
    }
}

✅ 6. 使用 Jenkinsparameters 传递参数到 docker 命令

stage('Run Docker') {
    steps {
        sh """
            docker run --env ENV=${env.ENV} --env PARAM=${env.PARAM} myimage mycommand
        """
    }
}

✅ 总结

方式 适用场景 优点
parameters Jenkins Pipeline 中的 shscript 简单直接,适合 Jenkins Pipeline
Jenkins API 自定义脚本(如 Jenkinsfile) 可以直接访问 params
env 变量 外部脚本 可以在任意 Shell 脚本中使用
docker 命令 Docker 容器中运行脚本 适合容器化环境

如需进一步了解 Jenkins Pipeline 参数传递机制,可以参考 Jenkins Pipeline documentation。如需 Shell 脚本示例,也可以告诉我具体需求。

相关推荐

Linux设备驱动开发详解
其他命令

如何在pe下打开linux

在 Windows 的 PE(Pre-Emptive Executive)环境下,通常无法直接运行 Linux 操作系统,因为 PE 是 Windows 的一种引导加载程序,主要用于启动 Windows 系统。不过,如果你是在 Window

2025-12-16
Linux设备驱动开发详解
其他命令

nva for mysql

你提到的“nva for mysql”可能是对 NVIDIA Virtualization Acceleration for MySQL 的误写或不准确表达。实际上,MySQL 本身并不支持 NVIDIA 的虚拟化加速功能(NVA),但你可

2025-12-16
Linux设备驱动开发详解
其他命令

linux如何修改网口ip

在 Linux 系统中,修改网口(网络接口)的 IP 地址可以通过以下几种常用方法实现:语法:ifconfig <interface> <new_ip> netmask <new_netmask> <gateway>示例:ifconfig

2025-12-16
Linux设备驱动开发详解
其他命令

mysql 地理gis

您提到的“MySQL 地理GIS”通常指的是将地理空间数据存储和管理在 MySQL 数据库中,常用于地理信息系统(GIS)的开发和应用。以下是与 MySQL 和 GIS 相关的一些常见命令和脚本,以及相关解释:MySQL 8.0 引入了 G

2025-12-16
Linux设备驱动开发详解
其他命令

如何进行端口加固linux

在 Linux 系统中,端口加固(Port Hardening)是保障系统安全的重要措施之一。以下是一些常见的端口加固方法和 Linux 命令,用于增强系统对网络端口的防护:1. 关闭不必要的端口使用 netstat 或 ss 查看监听端口

2025-12-16
Linux设备驱动开发详解
其他命令

储存函数mysql

您提到的“储存函数mysql”可能是指在MySQL数据库中创建或使用MySQL存储函数。以下是一些常见的MySQL存储函数相关命令和操作,适用于大多数Linux发行版:1. 使用 CREATE FUNCTION 命令CREATE FUNCT

2025-12-16
Linux设备驱动开发详解
其他命令

如何让linux只有只读权限

在 Linux 中,如果你希望一个文件或目录只有 只读权限,可以使用 chmod 命令来设置权限。以下是几种常用方法:chmod 444 文件名444 表示文件的权限为:r--r--r--(只有读权限)。这个命令会为指定的文件设置 只读权限

2025-12-16
Linux设备驱动开发详解
其他命令

xshell mysql命令

你提到的“xshell mysql命令”可能有几种不同的含义,以下是几种常见情况的解释和建议:Xshell 是一个常用的终端仿真器,可以用来连接 MySQL 服务器。以下是使用 Xshell 连接 MySQL 的基本步骤:步骤:打开 Xsh

2025-12-16