jenkins自动化构建流程篇章三 :shell脚本的语法和调用 您所在的位置:网站首页 获取最新版本的shell脚本 jenkins自动化构建流程篇章三 :shell脚本的语法和调用

jenkins自动化构建流程篇章三 :shell脚本的语法和调用

2024-06-24 01:26| 来源: 网络整理| 查看: 265

目录

1、博客介绍

2、内容

 变量

-- 定义变量

-- 定义数组 (数组只支持一维数组)

-- 获取执行脚本时的参数

运算符 

-- 算数运算符

-- 关系运算符

-- 布尔运算符

-- 逻辑运算符

-- 字符串运算符

-- 文件测试运算符

 输出语句

 test命令

 流程控制

-- if 语句

-- for循环

-- while语句

-- until循环

-- case ... esac 

-- break命令(跳出循环)

-- continue命令 

函数 

3、推送

4、结语

1、博客介绍

本篇是jenkins自动化流程的第三篇,shell脚本的语法,本篇会简单介绍一下shell的一些简单用法,大部分都是摘自菜鸟教程,本篇做记录用,有兴趣的同学可以直接跳转菜鸟教程

传送门:https://www.runoob.com/linux/linux-shell.html

篇章一 :在linux上部署jenkins环境

https://blog.csdn.net/Mr_Sun88/article/details/118557269

篇章二 :jenkins任务的创建

https://blog.csdn.net/Mr_Sun88/article/details/118557289

篇章三 :shell脚本的语法和调用

https://blog.csdn.net/Mr_Sun88/article/details/118557330

篇章四 :实战,利用jenkins构建一个python处理图片的流程

https://blog.csdn.net/Mr_Sun88/article/details/118557309

2、内容

 我们在上一篇的任务创建中已经介绍了,shell是怎么被调用的,这里我们简单在介绍一下shell的一些语法。

 变量 -- 定义变量 test_str="111"    (echo 为输入语句) 输出1:echo test_str             --结果 test_str 输出2:echo $test_str            --结果 111 输出3:echo ${test_str}          -- 结果 111 readonly test_str               -- readonly 可以将变量变成只读变量 不能被修改 unset test_str                  -- unset 删除变量 删除后不能被使用 不能删除只读变量

注:变量的声明,等号前后不能有空格 

-- 定义数组 (数组只支持一维数组) # list=(12 234 3 4 5) # 数组 创建 括弧() # list[6]=7 # 数组的手动赋值 # echo ${list[5]} # 数组的调用 必须加{} # echo ${list[@]} # 可以使用@获取数组中所有元素 # echo ${#list[@]} # 获取数组长度 # echo ${#list[*]} # 获取数组长度 # echo ${#list[n]} # 获取数组长度 -- 获取执行脚本时的参数 # 可以在执行shell脚本的时候 为其传参数 sh test.sh 1 2 3 # echo "Shell 传递参数实例!"; # echo "执行的文件名:$0"; # 输出执行文件的名字 $0 # echo "第一个参数为:$1"; # 输出第一个参数 $1 # echo "第二个参数为:$2"; # 输出第二个参数 $2 # echo "第三个参数为:$3"; # 输出第三个参数 $3 # echo "$#"; # 输出总参数的个数 $# $#传递到脚本的参数个数$*以一个单字符串显示所有向脚本传递的参数。 如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。$$脚本运行的当前进程ID号$!后台运行的最后一个进程的ID号$@与$*相同,但是使用时加引号,并在引号中返回每个参数。 如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。$-显示Shell使用的当前选项,与set命令功能相同。$?显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。 运算符  -- 算数运算符 #!/bin/bash val=`expr 2 + 2` echo "两数之和为 : $val" # 输出结果:两数之和为 : 4 运算符说明举例+加法`expr $a + $b` 结果为 30。-减法`expr $a - $b` 结果为 -10。*乘法`expr $a \* $b` 结果为  200。/除法`expr $b / $a` 结果为 2。%取余`expr $b % $a` 结果为 0。=赋值a=$b 将把变量 b 的值赋给 a。==相等。用于比较两个数字,相同则返回 true。[ $a == $b ] 返回 false。!=不相等。用于比较两个数字,不相同则返回 true。[ $a != $b ] 返回 true。 -- 关系运算符 a=10 b=20 if [ $a -eq $b ] then echo "$a -eq $b : a 等于 b" else echo "$a -eq $b: a 不等于 b" fi 输出结果:10 -eq 20: a 不等于 b 运算符说明举例-eq检测两个数是否相等,相等返回 true。[ $a -eq $b ] 返回 false。-ne检测两个数是否不相等,不相等返回 true。[ $a -ne $b ] 返回 true。-gt检测左边的数是否大于右边的,如果是,则返回 true。[ $a -gt $b ] 返回 false。-lt检测左边的数是否小于右边的,如果是,则返回 true。[ $a -lt $b ] 返回 true。-ge检测左边的数是否大于等于右边的,如果是,则返回 true。[ $a -ge $b ] 返回 false。-le检测左边的数是否小于等于右边的,如果是,则返回 true。[ $a -le $b ] 返回 true。 -- 布尔运算符 a=10 b=20 if [ $a != $b ] then echo "$a != $b : a 不等于 b" else echo "$a == $b: a 等于 b" fi 输出结果:10 != 20 : a 不等于 b 运算符说明举例!非运算,表达式为 true 则返回 false,否则返回 true。[ ! false ] 返回 true。-o或运算,有一个表达式为 true 则返回 true。[ $a -lt 20 -o $b -gt 100 ] 返回 true。-a与运算,两个表达式都为 true 才返回 true。[ $a -lt 20 -a $b -gt 100 ] 返回 false。 -- 逻辑运算符 a=10 b=20 if [[ $a -lt 100 && $b -gt 100 ]] then echo "返回 true" else echo "返回 false" fi 输出:返回 false 运算符说明举例&&逻辑的 AND[[ $a -lt 100 && $b -gt 100 ]] 返回 false||逻辑的 OR[[ $a -lt 100 || $b -gt 100 ]] 返回 true -- 字符串运算符 a="abc" b="efg" if [ $a = $b ] then echo "$a = $b : a 等于 b" else echo "$a = $b: a 不等于 b" fi 输出:abc = efg: a 不等于 b 运算符说明举例=检测两个字符串是否相等,相等返回 true。[ $a = $b ] 返回 false。!=检测两个字符串是否不相等,不相等返回 true。[ $a != $b ] 返回 true。-z检测字符串长度是否为0,为0返回 true。[ -z $a ] 返回 false。-n检测字符串长度是否不为 0,不为 0 返回 true。[ -n "$a" ] 返回 true。$检测字符串是否为空,不为空返回 true。[ $a ] 返回 true。 -- 文件测试运算符 file="/var/www/runoob/test.sh" if [ -r $file ] then echo "文件可读" else echo "文件不可读" fi 输出:文件可读 操作符说明举例-b file检测文件是否是块设备文件,如果是,则返回 true。[ -b $file ] 返回 false。-c file检测文件是否是字符设备文件,如果是,则返回 true。[ -c $file ] 返回 false。-d file检测文件是否是目录,如果是,则返回 true。[ -d $file ] 返回 false。-f file检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。[ -f $file ] 返回 true。-g file检测文件是否设置了 SGID 位,如果是,则返回 true。[ -g $file ] 返回 false。-k file检测文件是否设置了粘着位(Sticky Bit),如果是,则返回 true。[ -k $file ] 返回 false。-p file检测文件是否是有名管道,如果是,则返回 true。[ -p $file ] 返回 false。-u file检测文件是否设置了 SUID 位,如果是,则返回 true。[ -u $file ] 返回 false。-r file检测文件是否可读,如果是,则返回 true。[ -r $file ] 返回 true。-w file检测文件是否可写,如果是,则返回 true。[ -w $file ] 返回 true。-x file检测文件是否可执行,如果是,则返回 true。[ -x $file ] 返回 true。-s file检测文件是否为空(文件大小是否大于0),不为空返回 true。[ -s $file ] 返回 true。-e file检测文件(包括目录)是否存在,如果是,则返回 true。[ -e $file ] 返回 true。  输出语句 ################################### echo命令 # echo "It is a test" 显示普通字符串 # echo "\"It is a test\"" 显示转义字符 # echo "$name It is a test" 显示变量 ################################### printf命令 # printf "%-10s %-8s %-4s\n" 姓名 性别 体重kg # printf "%-10s %-8s %-4.2f\n" 郭靖 男 66.1234 # printf "%-10s %-8s %-4.2f\n" 杨过 男 48.6543 # printf "%-10s %-8s %-4.2f\n" 郭芙 女 47.9876  test命令 ################################### test命令 # 参数 说明 # -eq 等于则为真 # -ne 不等于则为真 # -gt 大于则为真 # -ge 大于等于则为真 # -lt 小于则为真 # -le 小于等于则为真 # num1=100 # num2=100 # if test $[num1] -eq $[num2] # then # echo '两个数相等!' # else # echo '两个数不相等!' # fi  流程控制

-- if 语句 a=10 b=20 if [ $a == $b ] then echo "a 等于 b" elif [ $a -gt $b ] then echo "a 大于 b" elif [ $a -lt $b ] then echo "a 小于 b" else echo "没有符合的条件" fi 输出结果:a 小于 b -- for循环 for loop in 1 2 3 4 5 do echo "The value is: $loop" done 输出结果: The value is: 1 The value is: 2 The value is: 3 The value is: 4 The value is: 5 -- while语句 #!/bin/bash int=1 while(( $int


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有