基础语法
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