前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >shell脚本 + date命令语法

shell脚本 + date命令语法

作者头像
老七Linux
发布2018-05-09 16:52:58
2.7K0
发布2018-05-09 16:52:58
举报

讲到shell,最想说的是,真的没有任何好方法,也没有任何捷径。野路子,,,遇到不会的,那就度娘呗,学呗,练呗,一个月不行半年,半年不行一年,我就不信了。

脚本能干啥?

shell脚本可以实现自动化运维,能大大增加我们的运维效率!

构成+执行
  • 开头需要加#! /bin/bash
  • 以#开头的行作为解释说明
  • 脚本的名字以.sh结尾,用于区分这是一个shell脚本
  • 执行方法有两种
  • chmod +x 1.sh; ./1.sh
  • bash 1.sh
  • 查看脚本执行过程 bash -x 1.sh
  • 查看脚本是否语法错误 bash -n 1.sh
一、date命令语法

后期的各种场景我们都会用到shell,经常用到的就是使用date做一些标记,例如日志分割,。

代码语言:javascript
复制
# date      //单纯的显示当前日期
2017年 09月 12日 星期二 21:26:09 CST

[[email protected] ~]# date +%Y   // 单纯的四位数  “年”
2017
[[email protected] ~]# date +%y   // 二位数    “年”
17
[[email protected] ~]# date +%M   // Minute “分钟”
32
[[email protected] ~]# date +%m   // Month    “月份”
09
[[email protected] ~]# date +%S   // Second   “秒”
21
[[email protected] ~]# date +%H   // Hour     “小时”
21
[[email protected] ~]# date +%d   // date     “日期”
12
[[email protected] ~]# date +%D   //  安装如何英文格式输出    “年月日”
09/12/17
二、组合显示
代码语言:javascript
复制
[[email protected] ~]# date +%Y%m%d       // 四位数   “年月日”
20170912

[[email protected] ~]# date +%y%m%d       // 二位数   “年月日”
170912

[[email protected] ~]# date +%F           // 特殊格式 “年月日”
2017-09-12

[[email protected] ~]# date +%T           // 特殊格式 “时分秒”
21:40:22

[[email protected] ~]# date +%H%M%S       // 组合式   “时分秒”
214500

[[email protected] ~]# date +%H:%M:%S     // 自定义   “时分秒”
21:45:07

[[email protected] ~]# date +%w           // week     “周几”
2

[[email protected] ~]# date +%W           // 第几周   
37
三、特殊需求显示

有时候我们在做日志切割的时候往往都是在00:00来操作,但是这个时候切割的日志已经算是今天的了,那么我们如何能够写上昨天的呢?

代码语言:javascript
复制
[[email protected] ~]# date -d "-1 day" +%F       // 昨天
2017-09-11

[[email protected] ~]# date -d "-1 month" +%F     // 上个月
2017-08-12

[[email protected] ~]# date -d "-1 years" +%F     // 上年
2016-09-12

[[email protected] ~]# date -d "-1 hour" +%T      // 过去的一小时
21:00:33

[[email protected] ~]# date +%s           // 从1970年到现在已经过去多少秒了   “时间戳”    
1505225506

换算某个时间点的时间戳:(2018年8月8号8时8分8秒离1970年过去了多少秒)
[[email protected] ~]# date +%s -d "2018-08-08 08:08:08"
1533686888

根据时间戳 得到一个具体的时间
[[email protected] ~]# date -d @1533686888
2018年 08月 08日 星期三 08:08:08 CST
shell中的变量

当脚本中使用某个字符串较频繁并且字符串长度很长时就应该使用变量代替,非常方便且能提高效率节省时间。

  • 使用条件语句时,常使用变量 if [ $a -gt 1 ]; then … ; fi
  • 引用某个命令的结果时,用变量替代 n=wc -l 1.txt
  • 写和用户交互的脚本时,变量也是必不可少的 read -p “Input a number: ” n; echo $n 如果没写这个n,可以直接使用$REPLY
  • 内置变量 $0, $1, $2… $0表示脚本本身,$1 第一个参数,$2 第二个 …. $#表示参数个数
  • 数学运算a=1;b=2; c=$(($a+$b))或者$[$a+$b]

也许如上看起来比较费劲,但是后期真正用到脚本中就会很容易去理解了。


本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016/09/12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 脚本能干啥?
  • 构成+执行
  • 一、date命令语法
  • 二、组合显示
  • 三、特殊需求显示
  • shell中的变量
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档