轻松学会shell常用参数

Posted Friends of the wind

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了轻松学会shell常用参数相关的知识,希望对你有一定的参考价值。

基础

1、-xv 调试 bash 脚本

1)创建测试文件
touch /var/log/env
不加试试:

-x:

-v:显示详情

2、两个整数相加

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

awk 'BEGINprint '"$A"' + '"$B"''#!/bin/bash
A=1
B=2

echo $A+$B | bc

进阶

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

思路:
先过滤出需要的参数,然后相加

#!/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常用参数的主要内容,如果未能解决你的问题,请参考以下文章

让你快速学会Shell脚本

shell脚本基础变量

10分钟就能学会,Linux操作系统21个shell常用命令

10分钟就能学会,Linux操作系统21个shell常用命令

15分钟学会shell脚本,最简明的教程在这里

数据可视化之powerBI基础(十九)学会使用Power BI的参数,轻松搞定动态分析