循环执⾏linux脚本,Shell循环执⾏3次命令
#!/bin/bash
for i in 1 2 3; do
echo 'Execute 3 times'
echo $i
pybot --nostatusrc --outputdir /root/.jenkins/workspace/User/report/ --include usertest /root/.jenkins/workspace/User-200
sleep 5s
done
1.shell格式:例
shell脚本开发习惯
1.指定解释器 #!/bin/bash
linuxshell脚本怎么运行2.脚本开头加版权等信息如:#DATE:时间,#author(作者)#mail:邮箱,#function(功能),#Version:版本
3.脚本注释(⽤英⽂注释 中⽂可能乱码。)
4.脚本以.sh结尾 不是必须的
5.成对的符号,⼀次性写全,退格补内容。特殊符号[ xxxx ] 中括号中间内容两边都有空格。
6 .代码有条理性(通过缩进)。
2.执⾏:1.sh xxx.sh (-x)执⾏并显⽰执⾏过程。
sh xx.sh(不需要root权限)。全路径执⾏需要x权限。(chmod a+x xx.sh)当前路径下⽤点执⾏(. xx.sh )或者source xxx.sh (重点)
注意:两个 脚本 ,当⼀个脚本需要调⽤前⼀个脚本⾥⾯的内容时候 。需要source 或者点 “.” 来执⾏加载才可调⽤。Sh .xxsh bash xxx 只可执⾏ 不可加载。
wwwblogs/wylhome/p/6059840.html
3.环境变量全局配置地点:常见的:/etc/profile , /etc/basrc , /etc/profile.d/xxx.sh ,
⽤户的环境变量~/.bash_profile ~./bash_bashrc
设置环境变量⽤:export 变量名(⼤写)=xxx变量值。
如登录时候提⽰信息可在vi /etc/motd 编辑改⽂件⾃定义提⽰信息。也可在/profile.d/xx.sh 内如可写echo “xxx⾃定义提⽰信息”。即可加⼊x执⾏权限。注意:定时任务。环境变量需要重新定义。
(1). 显⽰环境变量输出: echo $XXX , set ,env 显⽰⽐较全⾯。
(2)取消变量 unset 命令⾏临时取消。
(3)jobs 将查当前后台执⾏程序。
(4) ctrl+z 暂停, fg 调⾄前台运⾏,bg将程序调⾄后台执⾏。
(5)清空⽇志:cat /dev/null >test.log unll
4.shell特殊符号总结
‘’单引号 照原输出。
“” ⾃动识别变量执⾏,遇到命令需要加反引号。=不加引号(设置变量⾥⾯)
.*表⽰任意字符
. 表⽰任意⼀个字符。
* 表⽰任意0个或多个字符。(包括+和?)
+ 表⽰1个或多个+前⾯的字符
表⽰0个或1个字符。
# 注释符号。#后⾯的内容可以忽略
\ 脱意字符。
| 管道符号 将符号前⾯执⾏的结果作为符号后⾯的命令。如 |wc -l 计算⽂档⾏数。
$变量前⾯表⽰符号。还有⼀个妙⽤即和!结合起来使⽤。!$ 表⽰上⼀条命令中最后⼀个变量 如:上⼀次 。Vi !$ 其中!$表⽰为1.txt、
~表⽰root家⽬录。
& 如果把⼀条命令放到后台执⾏的话,则需要加上这个符号, 通常⽤作⼀个命令运作时间⾮常长的情况。如。Sleep 200 & 后台执⾏。Jobs 查看 bg 调⽤到前天 fg调⽤到后台。
>>追加重定向。 >(重定向) 2>>错误追加重定向。2>重定向。
< 如:wc -l &
[ ] 中括号 中间字符组合,代表中间字符中的任意⼀个。Ls [1-3].txt
{ } 表⽰序列 序列 如:touch wyl{1..3}.txt 也有表⽰变量的意义如: Echo “${a}abc” 告诉它a是变量。
^以什么开头。
$以什么结尾。
^$表⽰空⾏。
&& 左边命令执⾏成功后,在执⾏下⼀个命令
|| 左边的命令没有执⾏成功后,才会执⾏后⾯的命令。
;常常把两条命令写在⼀⾏中间⽤;隔开。有或的意思。如:command1:command2
#!/bin/bash
IMG_NAME=$(echo ${gitlabSourceRepoHttpUrl} | grep -Eo "[^/]*$" | sed 's/.git$//')
IMG_NAME_LOWER=$(echo $IMG_NAME | tr "A-Z" "a-z")
git clone ${gitlabSourceRepoHttpUrl}
cd ${IMG_NAME}
#git checkout -b ${gitlabSourceBranch}
CID=$(git rev-parse HEAD)
SHORT_CID=$(echo $CID | cut -c 1-8)
TIMESTAMP=$(date +%Y%m%d%H%M%S)
IMG_TAG=${TIMESTAMP}-${SHORT_CID}
#build
mvn clean package -DskipTests
#build docker image
docker build -t 192.168.1.202/dev/${IMG_NAME_LOWER}:${IMG_TAG} .
#push to
docker login 192.168.1.202 --username admin --password Harbor12345
docker tag 192.168.1.202/dev/${IMG_NAME_LOWER}:${IMG_TAG} 192.168.1.202/dev/${IMG_NAME_LOWER}:latest docker push 192.168.1.202/dev/${IMG_NAME_LOWER}:${IMG_TAG}
docker push 192.168.1.202/dev/${IMG_NAME_LOWER}:latest
/usr/local/bin/docker-starter dev ${IMG_NAME_LOWER} ${IMG_TAG}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论