shell程序
  • 以文件形式存放批量的Linux命令集合,该文件能够被Shell解释执行,这种文件就是Shell脚本程序
  • 通常由一段Liunx命令、Shell命令、控制语句以及注释语句构成
  • Shell脚本的编写
    • Shell脚本是纯文本文件,可以使用任何文本编辑器编写
    • Shell脚本通常是以.sh作为后缀名
语法
  • 第一行指定 #!/bin/bash 或者 #!/bin/sh
  • 使用#注释

变量
  • 变量名必须以字母或者下划线开头
  • 变量名关于大小写敏感
  • 取值: echo $name 或者 echo ${name}
  • 写入:name="hw" 等号两边不能有空格
  • 如果参数有空格需要用"hello world"引起来
变量类型
  • 本地变量:只存在当前session
  • 全局环境变量:/etc/profile 按照惯例需要大写
  • 用户环境变量:/.bash_profiles

位置参量
  • 需要使用 $1-$9 / ${10+} 来显示变量参数
  • $0 :表示当前脚本的文件名
  • $# :显示当前脚本的参数个数
  • $* :以单个字符串显示所有的位置参量
  • $! :最后一个后台运行的进程的进程号
  • $? :显示前面最后一个命令的退出状态。0表示没有错误,其他任何值表示有错误
执行脚本
  • . test.sh
  • ./test.sh
  • sh test.sh

数组的定义、引用
  • arr=(zhangsan lis wangz):定义数组
  • echo ${arr[0]}:查看数组元素
  • echo ${arr[*]}:列出数组所有的元素
  • echo ${#arr[*]}:查看数组的元素个数
  • arr[0]=zhangsan:赋值

date命令
  • date +%Y-%m-%dT%H:%M:%S:格式化日期
[root@fz hw]# date +%Y-%m-%dT%H:%M:%S
2018-08-06T17:39:04
  • ${date +%Y-%m-%d}:shell中定义
  • ${date --date='2 days ago' +%Y-%m-%d}:两天前
  • ${date --date='-1 days ago' +%Y-%m-%d}:一天后
  • date -s 2018-09-01:设置日期
  • cal 12 2018:查看2018年12月日历