shell 脚本介绍
- shell是一种脚本语言 aming_linux blog.lishiming.net
- 可以使用逻辑判断、循环等语法
- 可以自定义函数
- shell是系统命令的集合
- shell脚本可以实现自动化运维,能大大增加我们的运维效率
公众号:aming_linux
博客: blog.lishiming.net
Shell脚本结构和执行
开头(首行)需要加: #!/bin/bash
这里是指文件使用的是bash语法,通过/bin/bash解释器来执行的。
以#开头的行作为解释说明:
脚本的名字以.sh结尾,用于区分这是一个shell脚本
执行.sh脚本方法有两种:
1先给.sh脚本添加x权限:
chmod +x 1.sh
- 1
- 2
.sh脚本的绝对路径回车:
/root/1.sh
- 1
- 2
2bash(bash=sh)执行.sh脚本:
bash 1.sh
- 1
- 2
查看脚本执行过程:
sh -x 1.sh
- 1
- 2
检测shell脚本的语法错误:
sh -n 1.sh
- 1
- 2
date命令用法
date命令在·shell·脚本里的大部分是对日志进行文件名的更改,和对一些文件做日期上的区分。
查看当前时间
[root@shuai-01 ~]# date
2018年 02月 25日 星期日 14:51:35 CST
[root@shuai-01 ~]# LANG=en
[root@shuai-01 ~]# date
Sun Feb 25 14:52:25 CST 2018
- 1
- 2
- 3
- 4
- 5
- 6
- 7
-
date +%Y : 打印四位数字的年份
[root@shuai-01 ~]# date +%Y
2018 -
date +%y : 打印两位数字的年份
[root@shuai-01 ~]# date +%y
18 -
date +%m : 打印月份
[root@shuai-01 ~]# date +%m
02 -
date +%d : 表示日期
[root@shuai-01 ~]# date +%d
25 -
date +%H : 表示小时
[root@shuai-01 ~]# date +%H
14 -
date +%M : 表示分钟
[root@shuai-01 ~]# date +%M
58 -
date +%S : 表示秒
[root@shuai-01 ~]# date +%S
35 -
date +%w : 表示星期,0表示周日
[root@shuai-01 ~]# date +%w
0表示年月日:
[root@shuai-01 ~]# date +%Y%m%d
20180225[root@shuai-01 ~]# date +%F
2018-02-25
表示时间:
[root@shuai-01 ~]# date +%T
18:44:10
- 1
- 2
- 3
显示日历:
[root@shuai-01 ~]# cal
February 2018
Su Mo Tu We Th Fr Sa
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
date 标记昨天的日期:
[root@shuai-01 ~]# date -d "-1 day"
Sat Feb 24 18:47:16 CST 2018
[root@shuai-01 ~]# date -d "-1 day" +%F
2018-02-24
- 1
- 2
- 3
- 4
- 5
- 6
Shell脚本中的变量
1. 当脚本中使用某个字符串较频繁并且字符串长度很长时就应该使用变量代替
2. 使用条件语句时,常使用变量 if [ $a -gt 1 ]; then ... ; fi
3. 引用某个命令的结果时,用变量替代 n=`wc -l 1.txt`
4. 写和用户交互的脚本时,变量也是必不可少的 read -p "Input a number: " n; echo $n 如果没写这个n,可以直接使用$REPLY
5. 内置变量 $0, $1, $2… $0表示脚本本身,$1 第一个参数,$2 第二个 .... $#表示参数个数
6. 数学运算a=1;b=2; c=$(($a+$b))或者$[$a+$b]