一、数据类型
java String,下面的是内置数据类型,强类型,一旦定义后无法修改变量类型
1 byte -这是用来表示字节值。例如2。 2 short -这是用来表示一个短整型。例如10。 3 int -这是用来表示整数。例如1234。 4 long -这是用来表示一个长整型。例如10000090。 5 float -这是用来表示32位浮点数。例如12.34。 6 double -这是用来表示64位浮点数,这些数字是有时可能需要的更长的十进制数表示。例如12.3456565。 7 char -这定义了单个字符文字。例如“A”。 8 Boolean -这表示一个布尔值,可以是true或false。 9 String -这些是以字符串的形式表示的文本。例如,“Hello World”。
def -- 定义任意变量类型的关键字, 局部变量、临时变量、小作用域变量使用def
共享、函数内、闭包内要使用的变量,不用def 定义
二、常用方法
1.string

GString又叫可扩展字符串,用于""中,如下,c就是可扩展字符串
在shell中,只有在sh的双引号(单引号不会进行gstring插值)时,才会进行插入操作,如下
def var = "abc" sh """ echo var=${var} """
如果是env变量,如下,会将env变量注入shell中,由shell展开
env.var = "hello" sh ''' var=${var} '''
println "a=${3+2}"
def b = "hello"
def c = "${b} world"
println c
1 job_name = "devops05-app-service_CI" 2 3 // ["devops05", "app", "service_CI"] 4 bu_name = job_name.split('-')[0] 5 println(bu_name) //devops05 6 // contains 7 println(job_name.contains("CI")) //true 8 9 //size/length 10 println("size: ${job_name.size()}") 11 println("length: ${job_name.length()}") 12 13 //endsWith() 14 println("enswith CI: ${job_name.endsWith('CI')}") //true
//List tools = ["gitlab", "jenkins", "maven", "sonar"] pipeline { agent any stages{ stage("run"){ steps{ script{ // script println(tools) // add println(tools + "k8s") println(tools) println(tools << "ansible") //改变原对象 println(tools) println(tools - "maven") println(tools) tools.add("maven") println(tools) println(tools.getClass()) // contains println(tools.contains("jenkins")) // length println(tools.size()) // index println(tools[0]) println(tools[-1]) } } } } }

map
//Map
user_info = ["id": 100, "name": "jenkins"]
pipeline {
agent any
stages{
stage("run"){
steps{
script{
// script
println(user_info)
// get name
println(user_info["name"])
println(user_info["id"])
// =
user_info["name"] = "jenkinsX"
println(user_info)
// key
println(user_info.containsKey("name"))
println(user_info.containsValue(100))
// keys
println(user_info.keySet())
// remove
user_info.remove("name")
println(user_info)
}
}
}
}
}

三、条件语句
1.if/else
//if
// dev == dev stag == master
branchName = "dev"
pipeline {
agent any
stages{
stage("run"){
steps{
script {
// script
currentBuild.displayName = branchName
if ( branchName == "dev"){
println("deploy to dev....")
currentBuild.description = "deploy to dev...."
} else if (branchName == "master"){
println("deploy to stag....")
currentBuild.description = "deploy to stag...."
} else {
currentBuild.description = "error..."
println("error...")
}
}
}
}
}
}
2.switch
//switch
// dev == dev stag == master
branchName = "dev"
pipeline {
agent any
stages{
stage("run"){
steps{
script {
// script
currentBuild.displayName = branchName
switch(branchName) {
case "dev":
println("deploy to dev....")
currentBuild.description = "deploy to dev...."
break
case "master":
println("deploy to stag....")
currentBuild.description = "deploy to stag...."
break
default:
currentBuild.description = "error..."
println("error...")
break
}
}
}
}
}
}
3.for
//for
users = [
["name": "zeyang", "role": "dev"],
["name": "zeyang1", "role": "admin"],
["name": "zeyang2", "role": "ops"],
["name": "zeyang3", "role": "test"]
]
pipeline {
agent any
stages{
stage("run"){
steps{
script {
// script
// i = ["name": "zeyang", "role": "dev"]
user_names = []
for (i in users){
println(i["name"])
user_names << i["name"]
}
println(user_names) // [zeyang, zeyang1, zeyang2, zeyang3]
// times
10.times {
println('hello')
}
10.times { i ->
println(i)
}
}
}
}
}
}
4.while
// while
sleeps = true
pipeline {
agent any
stages{
stage("run"){
steps{
script {
// script
while(sleeps){
println("sleep....")
}
}
}
}
}
}
四、函数
//function
/*
def关键字 定义函数名为GetUserNameByID, 带有一个参数id;
函数体内的for循环遍历users的列表,如果id与参数id一致则返回用户的name;否则返回null;
*/
users = [
["id": 1, "name": "jenkins1"],
["id": 2, "name": "jenkins2"],
["id": 3, "name": "jenkins3"],
]
pipeline{
agent any
stages{
stage("run"){
steps{
script {
//script
// 调用函数并打印返回值
name = GetUserNameByID(1)
println(name) //jenkins1
}
}
}
}
}
// define GetUserName
def GetUserNameByID(id){
for (i in users){
if (i["id"] == id){
return i["name"]
}
}
return "null"
}
五、异常
// try catch
/*
如果println(a)失败(肯定失败,因为有语法错误)
catch捕获错误,并打印错误。
finally 总是执行。
error关键字可以抛出异常。
*/
pipeline{
agent any
stages{
stage("run"){
steps{
script{
// script
try {
println(a) // not define a error
} catch(Exception e){
println(e)
error "error..."
} finally {
println("always....")
}
}
}
}
}
}
浙公网安备 33010602011771号