shell变量赋值与环境(3)

3) #模式匹配运算符#
    模式为`通配符(wildcard)`
    基本通配符:
        ?      任何单一字符
        *      任何的字符字符串
        [set]  任何在set里的字符
        [!set]  任何不在set里的字符
    如:
        [abc]
        [.,;] 句点,逗点或分号(awk 多字符分割的写法)
        [-_]  破折号或下划线
        [a-c]
        [a-z]
        [!0-9] 任何一个非数字字符
        [0-9!] 任何一个数字或惊叹号
        [a-zA-Z0-9_-]
${variable#pattern} 删除variable从左到右最短匹配
${variable##pattern} 删除variable从左到右最长匹配
${variable%pattern} 删除variable从右到左最短匹配
${variable%%pattern}删除variable从右到左最长匹配
附加:
    git不熟,我只能帮凡爷最后一部分,他那部分未经他允许,还是不放了。

for name in `ls $respath |grep -v gitresult`
do
    sort -u $respath/$name | while read commit ; do git show $commit --pretty=tformat: --numstat;done  | \
    awk -v user=$name '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "%s added lines: %s, removed lines: %s, total lines: %s\n", user ,  add, subs, loc }' >> $respath/gitresult.$since.$before
done
 
-------小技巧------
path=$1
respath=/home/zcy
respath="$respath/${path:-result}"
 
如果$1为空,则respath=/home/zcy/result;否则,respath=/home/zcy/$path
 
或者:
path=$1
path=${path:=result}
respath=/home/zcy/$path

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/01f0a7031c780784572a98d6e66c81a4.html