轻松学会shell常用参数

基础

1、-xv 调试 bash 脚本

1)创建测试文件
touch /var/log/env
不加试试:
在这里插入图片描述
-x:
在这里插入图片描述
-v:显示详情
轻松学会shell常用参数_第1张图片
2、两个整数相加

#!/bin/bash
A=1
B=2
expr $A + $B#!/bin/bash
A=1
B=2

awk 'BEGIN{print '"$A"' + '"$B"'}'#!/bin/bash
A=1
B=2

echo $A+$B | bc

在这里插入图片描述

进阶

3、如何打印传递给脚本的参数

轻松学会shell常用参数_第2张图片
执行:
轻松学会shell常用参数_第3张图片
4、定义属组及调用数组

#!/bin/bash
Number=("name" "zhaosi" "man")

echo ${Number[2]}

在这里插入图片描述
5、每种类型日志的个数

Apache
2020-02-03 11:03:23 WARN My warning message repeated 3 times
2020-02-03 11:03:23 ERR oops, error message repeated 8 times
2020-02-03 11:03:26 ERR this is my error message repeated 1 times
2020-02-03 11:03:26 WARN MY warning , so scary, repeated 1 times
2020-02-03 11:03:26 WARN cpu utilization high, repeated 1 times
2020-02-03 11:03:29 INFO this is for test repeated 2 times

思路:
先过滤出需要的参数,然后相加
轻松学会shell常用参数_第4张图片

#!/bin/bash
#defined variable
W=`grep "WARN" apache.log |cut -d ' ' -f 3 | uniq -c |awk '{print $1}'`
E=`grep "ERR" apache.log |cut -d ' ' -f 3 | uniq -c |awk '{print $1}'`
I=`grep "INFO" apache.log |cut -d ' ' -f 3 | uniq -c |awk '{print $1}'`

#The results are displayed on the screen.
echo "WARN:$W"
echo "ERR:$E"
echo "INFO:$I"

求过滤结果的合

#!/bin/bash
W=`awk '/WARN/{print $(NF-1)}' apache.log |awk '{sum+=$1} END {print sum}'`
E=`awk '/ERR/{print $(NF-1)}' apache.log |awk '{sum+=$1} END {print sum}'`
I=`awk '/INFO/{print $(NF-1)}' apache.log |awk '{sum+=$1} END {print sum}'`

echo "WARN:$W"
echo "ERR:$E"
echo "INFO:$I"

在这里插入图片描述
6、shell批量生成日期目录
分析:先定义变量,再运用循环,生成1到31号。

获取当前日期赋值给DATE变量
DATE=$(date +%Y%m%d)
使用date的 -d参数,获取之前或往后日期

获取明天的日期
在这里插入图片描述

#!/bin/bash
images_path=/until
i=0
until [[ $day == "2018-01-31" ]]
do
        day=$(date -d "2018-01-01 $i days" +%Y-%m-%d)
        mkdir -p ${images_path}/$(date +"%Y")/$day/
        ((i++))
done

执行:sh until.sh
轻松学会shell常用参数_第5张图片


你可能感兴趣的:(云计算-架构,玩转Linux防护与群集,bash,linux,开发语言,运维,shell)