码迷,mamicode.com
首页 > 系统相关 > 详细

shell脚本介绍、脚本结构和执行、date命令用法、脚本中的变量

时间:2018-02-05 20:08:17      阅读:273      评论:0      收藏:0      [点我收藏+]

标签:chm   使用   语言   天前   脚本结构   没有   一个   $#   直接   

20.1 Shell脚本介绍

shell是什么

  • shell是一种脚本语言
  • 可以使用逻辑判断、循环等语法
  • 可以自定义函数
  • shell是系统命令的集合
  • shell脚本可以实现自动化运维,能大大增加我们的运维效率

20.2 shell脚本结构和执行

  • 开头需要加#!/bin/bash
  • 以#开头的作为解释说明
  • 脚本的名字以.sh结尾,用于区分这是一个shell脚本
  • 执行方法有两种

实例01:

[root@qingyun-01 shell]# cat 1.sh 
#!/bin/bash
echo "123"
  1. chmod +x 1.sh;./1.sh
[root@qingyun-01 shell]# chmod a+x 1.sh
[root@qingyun-01 shell]# ./1.sh 
123
  1. bash 1.sh
[root@qingyun-01 shell]# bash 1.sh 
123
  • 查看脚本执行过程 bash -x 1.sh
[root@qingyun-01 shell]# sh -x 1.sh 
+ echo 123
123
  • 查看脚本是否语法错误bash -n 1.sh
[root@qingyun-01 shell]# sh -n 1.sh 
#无错误
#只用于检测shell的无法错误

20.3 date命令用法

显示当前时间:

[root@qingyun-01 ~]# date
2018年 02月 05日 星期一 17:55:33 CST

#变更为英文
[root@qingyun-01 ~]# LANG=en
[root@qingyun-01 ~]# date
Mon Feb  5 17:57:24 CST 2018
  • date +%Y-%m-%d,date +%y-%m-%d 年月日
;年
[root@qingyun-01 ~]# date +%Y
2018
;取后两位
[root@qingyun-01 ~]# date +%y
18

;月份
[root@qingyun-01 ~]# date +%m
02

;号(日)
[root@qingyun-01 ~]# date +%d
05

;日期
[root@qingyun-01 ~]# date +%D
02/05/18

;即
[root@qingyun-01 ~]# date +%Y-%m-%d
2018-02-05
;或
[root@qingyun-01 ~]# date +%F
2018-02-05

[root@qingyun-01 ~]# date +%y-%m-%d
18-02-05
  • date +%H:%M:%S = date +%T 时间
;时
[root@qingyun-01 ~]# date +%H
18
;分
[root@qingyun-01 ~]# date +%M
07
;秒
[root@qingyun-01 ~]# date +%S
11

;即
[root@qingyun-01 ~]# date +%H:%M:%S
18:06:43
;或
[root@qingyun-01 ~]# date +%T
18:08:48
  • date +%s 时间戳
;时间戳
[root@qingyun-01 ~]# date +%s
1517825370
  • date -d @1517825370
#根据时间戳转换成日期
[root@qingyun-01 ~]# date -d @1517825370
Mon Feb  5 18:09:30 CST 2018
  • date -d "+1day" 一天后
[root@qingyun-01 ~]# date -d "-1 day"
Sun Feb  4 18:19:25 CST 2018
[root@qingyun-01 ~]# date -d "-1 month" +%F
2018-01-05
  • date -d "-1 years" 一天前
[root@qingyun-01 ~]# date -d "-1 years" +%F
2017-02-05
  • date -d "-1 month" 一月前
[root@qingyun-01 ~]# date -d "-1 month" +%F
2018-01-05
  • date -d "-1 min" 一分钟前
[root@qingyun-01 ~]# date -d "-1 min" +%F
2018-02-05
  • date +%w, 星期 date +%W 第几个星期
[root@qingyun-01 ~]# date +%w
1
;是今年的多少周(星期)
[root@qingyun-01 ~]# date +%W
06
  • 显示日历
[root@qingyun-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

20.4 shell脚本中的变量

  • 当脚本中使用某个字符串,多次频繁并且字符串长度很长时,就应该使用变量代替

  • 使用条件语句时,常使用变量 if [ $a -gt 1];then ...;fi

  • 引用某个命令的结果时,用变量替代 n=wc -l 1.txt

  • 写和用户交互的脚本时,变量也是必不可少的 read -p "lnput a number:" n; echo $n 如果没有写这个n, 可以直接使用$REPLY

  • 内置变量 $0,$1,$2... $0表示脚本本身,$1 第一个参数,$2第二个... $#: 表示参数个数
  • 数学运算a=1;b=2;c=$($a+$b)或者$[$a+$b]

shell脚本介绍、脚本结构和执行、date命令用法、脚本中的变量

标签:chm   使用   语言   天前   脚本结构   没有   一个   $#   直接   

原文地址:http://blog.51cto.com/3622288/2069108

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!