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设备驱动开发详解
其他命令

mysql异步读写

在 Linux 系统中,mysql 是一个常用的 MySQL 客户端工具,支持异步读写操作。通常,mysql 命令行工具默认是同步的,即执行 SQL 语句时会等待执行完成后再继续。如果你希望实现异步读写,可以使用以下几种方法:如果你使用的是

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

linux如何查看指定的进程

在 Linux 中,查看指定进程可以使用多种命令,以下是常用的方法:ps 命令可以显示当前运行的进程信息。查看指定 PID 的进程:ps -p <PID><PID> 是进程 ID。查看指定名称的进程(例如 nginx):ps -e | gr

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

mysql 时序插件

在 MySQL 中,时序插件通常指的是 Percona XtraDB Cluster(PXC) 或 MySQL Cluster 中的时序数据存储和处理功能。不过,如果你指的是 MySQL 的时序数据插件(例如用于处理时间序列数据的插件),那

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

kali linux如何更改镜像源

在 Kali Linux 中,更改镜像源(如更换源为阿里云、清华源等)通常是为了提高下载速度或避免某些源被封锁。以下是更改 Kali Linux 镜像源的常用方法,适用于大多数 Linux 发行版(包括 Kali Linux)。打开源列表文

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

mysql制作界面

要“制作界面”在MySQL中,通常是指创建一个图形化界面来管理MySQL数据库,比如使用MySQL Workbench、phpMyAdmin、MySQL GUI工具等。以下是几种常见的MySQL图形界面工具及其使用方法:功能:提供图形化界面

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

linux监视窗口如何输入

在 Linux 系统中,监视窗口(通常指终端窗口)输入命令的方式,主要是通过命令行界面(CLI)进行的。你提到的“监视窗口”可能是指终端窗口(Terminal Window),在 Linux 中,终端窗口是用户与操作系统交互的界面。在终端窗

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

mysql函数相乘

在 MySQL 中,没有直接的内置函数用于对两个数值进行相乘,但你可以使用 CONVERT() 或 CAST() 函数将字符串转换为数值,然后进行乘法运算。SELECT CONVERT('123', UNSIGNED) * CONVERT(

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

linux如何查看网卡启动状态

在 Linux 系统中,查看网卡(网络接口)的启动状态,可以通过多种方式实现。以下是几种常用的方法:ip a这个命令会列出所有网络接口的状态,包括:UP 表示接口已启用(启动)DOWN 表示接口未启用(未启动)示例输出:eth0: <UP>

2025-12-11