参考书籍《GROOVY入门经典》
参考文章:https://blog.csdn.net/mathew_leung/article/details/87922869
1.打开groovy自带的编辑器DOS命令行输入groovyconsole

1.整数运算符
2.混合运算
3.赋值def conut = 0 #声明并初始化变量
count = conut + 1 #在当前值的基础上加1

if(value instanceof Integer) {
println "是整型"
} else {
println "不是整型"
}
1.字符串索引

2.基本操作
3.正则表达式=~表示模糊匹配;==~表示精确匹配
4.字符串替换webVersion = webVersion.replaceAll("\n","") //替换字符串后面的换行符
def test = url.replaceAll("http(s)?:","") //替换http:或者https:为空
5.常用操作split()方法不支持同时对多个字符进行分割,tokenize()支持

Jenkins高级篇之Pipeline实践篇-2-groovy中字符串操作split()和tokenize()区别
def num = '1106502'
if(! num.isInteger() && ! num.isFloat()) {
println "不是数字"
}else{
println "是数字"
}
println num
}
VALUE.contains('abc') //字符串包含abc
VALUE.startsWith('test') //以test开头为真
VALUE.endsWith('.txt') //VALUE字符串以.txt结尾为真
参考文章:
Groovy的List(列表)操作
1.列表
def numbers = [11, 22] #定义一个新列表
numbers << 13 #[11, 22, 13]
numbers + [14, 15] #[11, 22, 13, 14, 15]
numbers - [11] #[22, 13]
def arr = new ArrayList() //定义一个空列表
def HostIpList = [] //定义一个空列表
alist.contains(4) //检查4是否在alist列表中
alist.remove('b') //删除列表中的b元素
HostIpList = strings.split("\n") //以换行符进行分割,返回一个列表
def Flag = fileExists '/data/host.yaml' //存在返回真,不存在返回假
alist -= [1] //删除列表alist中值为1的元素



for(ip in ipList) { //for里面的变量ip是个局部变量
println ip
}
或者
[1, 2, 3].each {println it}
def nfs_server = "192.168.1.1,192.168.1.2"
def nfsIPList = nfs_server.split(",")
string1 = alist[0] + '-' + alist[1]
2.映射(类似Python的字典)

def paramMap = ["a":1, "b":2]
paramMap.a和paramMap.get[‘a’]都可以获取a的值
如果paramMap中没有a,paramMap.a返回null,paramMap.get[‘a’]会抛出异常
//方法一
def paramMap = ["a":1, "b":2]
paramMap.each{entry ->
def key = entry.key
def value = entry.value
println key
println value
}
//方法二
for (Map.Entry<String, List> entry:paramMap .entrySet()){
println entry.getKey()
println entry.getValue()
}
def map1 = [:] //定义空映射
3.范围

1.基本输出println "Hello World!"
2.格式化输出
3.简单输入
def library =[ 'Ken' : ['Groovy','UML'],
'John' : ['java']
]
library['Sally'] = ['Basic']
library['John'] = library['John'] << 'OOD'
library['Ken'].contains('UML')
library.keySet().sort()
library['Ken'].size
def greetings() {
println 'Hello World!'
}
greetings()
if(表达式){
cmd
} else {
cmd
}
outFile = new File(‘/tmp/t1.txt’)
outFile.append('Hello World'+'\n')
表示一段可执行的代码库,类似于方法(函数)。
def clos={param -> println "Hello ${param}"}
clos('World')
解释:
param为形参,World为实参
def clos={println "Hello ${it}"}
clos.call('World')
def parameter = new HashMap()
parameter.putAll(datas)
捕获异常,并抛出异常timestamps
{
try {
语句块
}//try
catch(Exception err) {
throw new Exception("*******Caught an exception: ${err}")
}
}
不抛出异常try {
sh 'lsd'
} catch (ignored) {
println 'not throw exception'
}
switch (type) {
case "mysql":
println("mysql数据库")
break
case "oracle":
println("oracle数据库")
break
default:
println("前面没有匹配下,执行default下面的语句")
}
println(alist.getClass())