轻松学会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常用参数的主要内容,如果未能解决你的问题,请参考以下文章
10分钟就能学会,Linux操作系统21个shell常用命令