shell是什么

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

shell 脚本结构与执行方法

  • 默认情况下,shell脚本的后缀名是<span>.</span>sh
  • 一般执行方式是 bash(shell命令解释器,还可以是sh,zsh等)+sh脚本
  • 第二种是用点(.)或source来执行,例如,. a<span>.</span>sh,这种执行方式和上面的差不多,都会单独启动一个shell进程来执行
  • 第三种是路径执行(当前目录下需要使用./a<span>.</span>sh),不过这种执行方式必须在shell脚本的开头加命令解释器#!/bin/bash,还需要加可执行的权限(chmod +x a<span>.</span>sh)
  • 查看脚本执行过程bash -x a<span>.</span>sh
  • 查看脚本是否语法错误 bash -n a<span>.</span>sh

date命令

常见的date命令选项

-d 字符串: 显示字符串所指的日期和时间。字符串必须加双引号,时间戳可以不加。
-s 字符串: 根据字符串来设置日期与实践。字符串必须加双引号。
-u: 显示GTM时间

常见参数:

%H 小时,24小时制(00~23)
%I 小时,12小时制(01~12)
%k 小时,24小时制(0~23)
%l 小时,12小时制(1~12)
%M 分钟(00~59)
%p 显示出AM或PM
%r 显示时间,12小时制(hh:mm:ss %p)
%s 从1970年1月1日00:00:00到目前经历的秒数
%S 显示秒(00~59)
%T 显示时间,24小时制(hh:mm:ss)
%X 显示时间的格式(%H:%M:%S)
%Z 显示时区,日期域(CST)
%a 星期的简称(Sun~Sat)
%A 星期的全称(Sunday~Saturday)
%h,%b 月的简称(Jan~Dec)
%B 月的全称(January~December)
%c 日期和时间(Tue Nov 20 14:12:58 2012)
%d 一个月的第几天(01~31)
%x,%D 日期(mm/dd/yy)
%j 一年的第几天(001~366)
%m 月份(01~12)
%w 一个星期的第几天(0代表星期天)
%W 一年的第几个星期(00~53,星期一为第一天)
%y 年的最后两个数字(1999则是99)

加减操作

 date -d "+1day"  一天后
 date -d "-1 day"  一天前
 date -d "-1 month" 一月前
 date -d "-1 min"  一分钟前

什么时候使用变量

  • 当脚本中使用某个字符串较频繁并且字符串长度很长时就应该使用变量代替
  • 使用条件语句时,常使用变量 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]
12-28 06:21