20.1 shell脚本介绍
20.2 shell脚本结构和执行
20.3 date命令用法
20.4 shell脚本中的变量
20.5 shell脚本中的逻辑判断
shell脚本介绍
shell是一种脚本语言,可以使用逻辑判断、循环等语法,可以自定义函数。
与其他编程语言不同的是shell没有语言库,许多任务都需要从头实现。但是shell可以调用linux系统命令,这大大扩展了shell脚本的功能。shell脚本可以实现自动化运维,能大大增加我们的运维效率。
shell脚本结构和执行
开头需要加#!/bin/bash,指定解释器。此外,以#开头的行作为解释说明,在写脚本时多写一些注释对方便以后维护。
脚本的名字以.sh结尾,用于区分这是一个shell脚本。
执行方法有两种:
- 为脚本文件增加执行权限
chmod +x
,然后就可以直接运行:1.sh
或者./1.sh
(相当于相对路径,也可以写绝对路径) - bash 1.sh
查看脚本执行过程 bash -x 1.sh
。查看脚本是否语法错误 bash -n 1.sh
,没有输出提示就是语法正确。
date命令的用法
date +%Y-%m-%d, date +%y-%m-%d #以年月日的格式输出
date +%H:%M:%S = date +%T #输出时间
date +%s -d “2018-09-09 18:50:20” #时间戳,距离1970年1月1日的时间秒
date -d @1504620492 #时间戳,与上面互换
date -d "+1day" 一天后
date -d "-1 day" 一天前
date -d "-1 month" 一月前
date -d "-1 min" 一分钟前
date +%w, date +%W w星期几,W今年的第几周
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 第 二 个 , 2 第二个, 2第二个,#表示参数个数。数学运算a=1;b=2; c= ( ( (( ((a+ b ) ) 或 者 b))或者 b))或者[ a + a+ a+b]。
shell脚本中的逻辑判断
- 格式1:if 条件 ; then 语句; fi
- 格式2:if 条件; then 语句; else 语句; fi
- 格式3:if …; then … ;elif …; then …; else …; fi
逻辑判断符号: -gt
(>); -lt
(<); -ge
(>=); -le
(<=); -eq
(==); -ne
(!=)。 注意使用时括号内变量、-gt等左右都有空格,类似这样写逻辑判断表达式:if [ $a -gt $b ]; if [ $a -lt 5 ]; if [ $b -eq 10 ]。
可以使用 && || 结合多个条件:
if [ $a -gt 5 ] && [ $a -lt 10 ]; then echo “hello” ;fi
if [ $b -gt 5 ] || [ $b -lt 3 ]; then echo “hello”;fi