shell学习

基础语法

1:拆分字符串成数组及遍历数组

lookR=`cat ./test.txt`
offsetData=(${lookR//"|"})
count=${#offsetData[@]}
for ((i=0;i<$count;i++)) do
   echo "${offsetData[i]}"
done

2:加法

step=1
step=`expr ${step} + 1`

3:shell的加减乘除只可以是整数参与运算 运算时 务必注意空格和$的使用
4:判断是否相等

cur=6
if test $cur -eq 7
then
    echo "相等7"
elif test $cur -eq 6
then
    echo "相等6"
else
    echo "不相等"
fi

脚本练习之调用shell给钉钉发送git提交日志

第一步:
创建钉钉机器人,首先你得建一个群,然后
在这里插入图片描述
获取token:
在这里插入图片描述
第二步:在git目录下创建一个shell脚本test.sh
在这里插入图片描述
test.sh
下面的脚本需要替换xxxxxxx为你自己的token

#!/bin/sh

filename=./log/commit.log
author=$(git show -s --pretty=%an)
todayTime=$(date "+%Y%m%d")

#当天的日志
#searchStartTime='$todayTime 00:00:00'
#searchEndTime='$todayTime 23:59:59'

#指定某一天的日志
searchStartTime='$2021.04.28 00:00:00'
searchEndTime='$2021.04.29 23:59:59'

#清空文件 先删除原文件 再重新生成一个新的文件
rm -if $filename && touch $filename

echo ${author}

git log --pretty=format:"%an: %s"  --since="$searchStartTime" --until="$searchEndTime" | 
grep $author | grep -v "Merge branch" >> $filename

sendStr=$(cat $filename)


hostAdress='https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxx'
param1="Content-Type:application/json;charset=UTF-8"
param2="{\"msgtype\": \"text\", \"text\": {\"content\":\"${sendStr}\"}}"

echo $sendStr

$(curl -X POST $hostAdress -H "${param1}" -d "${param2}")


read -p "按回车键继续"
echo 继续运行

第三步:
往往到了这里就结束,但是我们经常在git提交日志的时候会出现中文,这样发送到钉钉聊天窗口的时候会乱码,需要在git创建进行如下设置

在这里插入图片描述
在这里插入图片描述
拷贝文件到指定目录 路径不变

fileContent=$(cat ./1.txt)
workPaths=(${fileContent})
for((i=0;i<${#workPaths[@]};i++)) do
newFolder=./test/$(dirname ${workPaths[i]})
if [ ! -d ${newFolder} ];then
   mkdir -p ${newFolder}
fi
cp -a ./${workPaths[i]} ${newFolder}
done;
read p
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值