1、参数
shell语言,采用$0,$1,$2..等方式获取脚本命令行传入的参数,值得注意的是,$0获取到的是脚本路径以及脚本名,后面按顺序获取参数,当参数超过10个时(包括10个),需要使用${10},${11}....才能获取到参数,但是一般很少会超过10个参数的情况
eg:
#!/bin/bash
echo "脚本$0"
echo "第一个参数$1"
echo "第二个参数$2"
echo ...........
2、时间
获取系统时间 (今天) `date +%Y%m%d` 或 `date +%F` 或 $(date +%y%m%d)
对时间进行计算: date -d
eg:
next_day="`date -d tomorrow +%y%m%d`" ##明天
before_date="`date -d "yesterday" +%Y-%m-%d`" 或者 "`date -d -1day +%Y%m%d`" ##昨天
last_day="`date -d -2day +%Y%m%d`" ##获取前天日期
依次类推比如获取10天前的日期:`date -d -10day +%Y%m%d` 或n天前的 `date -d "n days ago" +%y%m%d`
至于你需要什么样的日期时间格式,就需要应用相关的时间域参数来实现咯
相关时间域如下:
% H 小时(00..23)
% I 小时(01..12)
% k 小时(0..23)
% l 小时(1..12)
% M 分(00..59)
% p 显示出AM或PM
% r 时间(hh:mm:ss AM或PM),12小时
% s 从1970年1月1日00:00:00到目前经历的秒数
% S 秒(00..59)
% T 时间(24小时制)(hh:mm:ss)
% X 显示时间的格式(%H:%M:%S)
% Z 时区 日期域
% a 星期几的简称( Sun..Sat)
% A 星期几的全称( Sunday..Saturday)
% b 月的简称(Jan..Dec)
% B 月的全称(January..December)
% c 日期和时间( Mon Nov 8 14:12:46 CST 1999)
% d 一个月的第几天(01..31)
% D 日期(mm/dd/yy)
% h 和%b选项相同
% j 一年的第几天(001..366)
% m 月(01..12)
% w 一个星期的第几天(0代表星期天)
% W 一年的第几个星期(00..53,星期一为第一天)
% x 显示日期的格式(mm/dd/yy)
% y 年的最后两个数字( 1999则是99)
% Y 年(例如:1970,1996等)
注意:只有超级用户才有权限使用date命令设置时间,一般用户只能使用date命令显示时间。
3、循环
For循环
1、 for 变量名 in .... ; do 操作 done
eg: 遍历1-10并输出
#!/bin/bash
for number in 1 2 3 4 5 6 7 8 9 10;
do
echo $number;
done
2、for((i=初始值;i<=终止值;i++));do 操作 done
eg:遍历1-10
#!/bin/bash
for((i=1;i<=10;i++));
do
echo $i;
done
3、for 变量 in $字符串;do 操作 done
eg: 遍历字符串 'aa bb cc dd ee'
list="aa bb cc dd ee"
for i in $list;
do
echo $i
done
While循环
基本格式: while [ 变量 (判断符 -le ,-eg,ne等) 值或字符串 ] ;do 操作 done
--------注意最后一个‘]’的前面必须有个空格
eg : 遍历输出1-9
i=1
while [ $i -le 10 ];
do
echo $i
i=$((i + 1)) #注意,此处一定要加上循环周期
done
4、判断语句
基本格式:
if 条件 then command else end fi
命令执行成功,等于返回0 (比如grep ,找到匹配) 执行失败,返回非0 (grep,没找到匹配)
eg :判断一个变量是否是空
if [ "$var" = "" ] #判断读取的数据量是否为空
then
numbers=0
else
numbers=$var
fi
5、数值运算
1、双小括号(()) 数值运算命令
双小括号的作用是进行数值运算与数值的比较
eg:
1、数值比较
((8>7&&5==5)) 条件判断
2、数值运算
echo $((1+1)) 计算1+1的值
2、expr :用于整数运算
注意:用expr命令时 左右两侧必须要空格
eg:
expr 4 + 2 计算4+2
expr 4 - 2 计算4-2
expr 4 \* 2 计算4*2 要吧*前面加上\
expr 4 / 2 计算4/2
6、读取文件
一般的我们都会在shell中获取文件的信息,基本格式:
$(操作);
eg:
1、获取文件的数字,并赋值
var=$(cat /aa.log | grep -e '^\s.*[0-9]\b') ;
2、获取文本的行数
var=$(wc -l /aa.log)
目前总结出来这些,在实际开发中经常用到,还有很多没总结出来,后续再补充