东行天下

导航

 

一、数据类型

java String,下面的是内置数据类型,强类型,一旦定义后无法修改变量类型

1 byte -这是用来表示字节值。例如2。
2 short -这是用来表示一个短整型。例如10。
3 int -这是用来表示整数。例如1234。
4 long -这是用来表示一个长整型。例如10000090。
5 float -这是用来表示32位浮点数。例如12.346 double -这是用来表示64位浮点数,这些数字是有时可能需要的更长的十进制数表示。例如12.34565657 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....")
					}

				}
			}
		}
	}
}

  

 

posted on 2023-12-06 17:13  东行天下  阅读(34)  评论(0)    收藏  举报