如何在Bash脚本中提取指定内容适配Jenkins choiceParam下拉列表
提取指定SQL条目名称的Bash命令修改方案
下面给你两种简单直接的修改方式,能快速拿到冒号前的名称:
方法1:grep + cut 组合命令
先过滤出所有以sql开头的行,再截取冒号前的内容:
grep "^sql" 你的文件名 | cut -d: -f1
grep "^sql":只保留行首是sql的条目,过滤掉其他无关行cut -d: -f1:把每行按冒号:拆分,只取第一部分(也就是不带版本的名称)
方法2:awk 单命令处理
用awk一步完成过滤和提取,比组合命令更高效:
awk '/^sql/ {print $1}' FS=":" 你的文件名
/^sql/:匹配行首为sql的行FS=":":指定以冒号作为内容的分隔符print $1:输出分隔后的第一个字段(即冒号前的名称)
适配Jenkins Pipeline的示例
把提取到的名称数组直接用到choiceParam里:
// 先通过shell命令拿到所有SQL模块名称 def sqlModuleNames = sh( script: 'grep "^sql" 你的文件名 | cut -d: -f1', returnStdout: true ).trim().split('\n') pipeline { agent any parameters { choiceParam( name: 'SELECT_SQL_MODULE', choices: sqlModuleNames, description: '请选择要操作的SQL模块' ) } stages { stage('示例步骤') { steps { echo "你选择的模块是:${params.SELECT_SQL_MODULE}" } } } }
内容的提问来源于stack exchange,提问作者someone
相关产品推荐
相关产品推荐

