shell脚本介绍 shell脚本结构和执行 date命令用法 shell脚本中的变量
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本介绍 shell脚本结构和执行 date命令用法 shell脚本中的变量相关的知识,希望对你有一定的参考价值。
一、shell脚本介绍
shell脚本要想写好,必须通过不断地去练习写才能写好,没有捷径
要在我们拿到一个需求的时候有一个脚本的大致思路,想到需求怎么去实现
shell脚本可以大大提高我们的工作效率
二、shell脚本结构和执行
[[email protected] ~]# mkdir shell //创建一个shell文件夹,存放实验的shell脚本
[[email protected] ~]# cd shell/
[[email protected] shell]# ls
[[email protected] shell]# vi 01.sh //创建第一个脚本01.sh
#!/bin/bash
echo "123"
w
ls
//第一行必须这样写成这样的格式,如果这个脚本在本机上执行,第一行可以省略不写,但是如果也要在其他机器上执行,就必须要写了,我们必须指定接下来的这些命令是通过哪一个解释器来操作的
[[email protected] shell]# sh 01.sh //运行下01.sh脚本,可以正常执行
123
00:00:46 up 2:35, 1 user, load average: 0.14, 0.06, 0.06
USER TTY FROM [email protected] IDLE JCPU PCPU WHAT
root pts/0 192.168.238.1 23:37 6.00s 0.20s 0.02s w
01.sh
也可以给01.sh脚本执行的权限
[[email protected] shell]# chmod a+x 01.sh
[[email protected] shell]# ./01.sh //直接使用./来执行脚本,能执行说明这些命令被解析了,被认识了
123
00:02:33 up 2:37, 1 user, load average: 0.02, 0.04, 0.05
USER TTY FROM [email protected] IDLE JCPU PCPU WHAT
root pts/0 192.168.238.1 23:37 1.00s 0.23s 0.01s w
01.sh
在脚本第二行再写一行#!/bin/bash就被识别为解释语句了
#!/bin/bash
#written by aming //解释
#2018-07-13 //解释
#echo w ls //解释
echo "123"
w
ls
[[email protected] shell]# vi /etc/init.d/network //查看下系统里面的network脚本
#! /bin/bash
#
#network Bring up/down networking
#
#chkconfig: 2345 10 90 //这个有特殊意义,2345是定义它的启动级别,10是启动顺序,90是关闭的顺序
#description: Activates/Deactivates all network interfaces configured to //针对脚本的解释说明
#start at boot time. //如果没有这两行,没有办法加入到chkconfig列表里面去
以#开头的行作为解释说明,可以写版权,写日期,解释脚本做什么用的等等
脚本的名称以.sh结尾,用于区分这是一个shell脚本
执行shell脚本的两种方法;
1、bash 01.sh 或者 sh 01.sh
2、chmod +x 01.sh ,然后使用./01.sh ,./是相对路径,也可以直接写绝对路径找到这个脚本直接执行也可以# /root/shell/01.sh来执行01.sh脚本
sh -x 01.sh ,其中-x选项是显示shell脚本执行的过程,每一个+表示一个操作
[[email protected] shell]# sh -x 01.sh
- echo 123
123 - w
07:10:42 up 3:29, 2 users, load average: 0.01, 0.02, 0.05
USER TTY FROM [email protected] IDLE JCPU PCPU WHAT
root pts/0 192.168.238.1 23:37 7:03m 0.30s 0.30s -bash
root pts/1 192.168.238.1 06:27 2.00s 0.10s 0.00s sh -x 01.sh - ls
01.sh
[[email protected] shell]# sh -n 01.sh //使用-n选项查看shell脚本有没有语法错误,仅检测语法错误
三、date命令用法
date在shell中作用很大,比如在一个脚本中标记一个日志,或者针对某一个文件做更改,可以使用date给它做一些装饰,比如每天备份一个sql文件,加上日期,就可以知道sql文件是哪一天生成的。
也可以按照周生成备份文件,比如周一生成1.sql,周二生成2.sql以此类推,每周生成7个备份文件,下周再生成新的1.sql文件上自动把上周备份的1.sql文件覆盖掉,不需要我们手动去删除备份文件了,它可以自动去覆盖名字相同的文件,所以date在shell中非常有用,实用。
[[email protected] ~]# date +%Y //使用%Y表示四位数的年份
2018
[[email protected] ~]# date +%y //使用%y表示两位数的年份
18
[[email protected] ~]# date +%m //使用%m表示月份
07
[[email protected] ~]# date +%M //使用%M表示分钟
53
[[email protected] ~]# date +%d //使用%d表示日期
14
[[email protected] ~]# date +%D //使用%D表示月/日/年 这样格式的年月日
07/14/18
[[email protected] ~]# date +%Y%m%d //把%Y%m%d组合起来使用表示的就是年月日
20180714
[[email protected] ~]# date +%F //使用%F表示带横杠的年月日,显示的更友好
2018-07-14
[[email protected] ~]# date +%H //使用%H表示小时
15
[[email protected] ~]# date +%S //使用%S表示秒
07
[[email protected] ~]# date +%s //使用%s表示时间戳,距离1970年1月1日0点0分到现在过去了多少秒
1531551793
[[email protected] ~]# date +%T //使用%T表示时间
16:23:53
[[email protected] ~]# date +%H%M%S //使用%H%M%S表示时分秒
162715
[[email protected] ~]# date +%H:%M:%S //中间加上冒号显示的更友好,等同于%T
16:27:28
[[email protected] ~]# date +%w //使用%w表示周几
6
[[email protected] ~]# date +%W //使用%W表示今天是今年的第多少周
28
[[email protected] ~]# cal //cal命令可以显示日历
July 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
29 30 31
比如在nginx切割日志的时候,它会在每天的凌晨0点钟去切割前一天的日志,这时候需要标注的日期是前一天的日期,这时候可以使用date 标记昨天的日期:
[[email protected] ~]# date -d "-1 day" //这样就显示了昨天的日期
Fri Jul 13 16:40:59 CST 2018
[[email protected] ~]# date -d "-1 day" +%F //加上%F更友好的显示年月日
2018-07-13
[[email protected] ~]# date -d "-1 month" +%F //使用month表示上个月,一月前
2018-06-14
[[email protected] ~]# date -d "-1 years" +%F //使用years表示上一年,同样的day和month都可以加s
2017-07-14
[[email protected] ~]# date -d "-1 year" +%F //使用year效果一样
2017-07-14
[[email protected] ~]# date -d "-1 hour" +%T //使用hour表示时一小时前
15:48:44
[[email protected] ~]# date -d "-1 min" +%T //使用min表示一分钟前,秒也是可以这样表示的
16:51:13
[[email protected] ~]# date +%s -d "2018-07-14 16:55:23" //把具体的时间换算成时间戳
1531558523
[[email protected] ~]# date -d @1531558523 //反过来也可以把时间戳换算成具体的时间
Sat Jul 14 16:55:23 CST 2018
四、shell脚本中的变量
shell脚本中到处都是使用变量的,简单讲,变量其实就是一个变化的参数,一个数值,一个字符串,可以反复使用它,调用它
以上是关于shell脚本介绍 shell脚本结构和执行 date命令用法 shell脚本中的变量的主要内容,如果未能解决你的问题,请参考以下文章
shell脚本介绍 shell脚本结构和执行 date命令用法 shell脚本中的变量
shell脚本介绍,shell脚本结构和执行,date命令用法,shell脚本中的变量
六十七shell脚本介绍shell脚本结构和执行date命令用法shell脚本中的变量
linux的shell脚本介绍shell脚本结构和执行date命令用法shell脚本中的变量