一、shell脚本
(一)什么是shell脚本

  1. shell脚本的创建和执行
    • shell脚本通常都以.sh为后缀名,但并非不加.sh的脚本就不能执行
    • 脚本执行方法:sh 【脚本名】或 ./脚本名
    • ./脚本名 的方法运行shell脚本的前提是脚本本身有执行权限
    • sh命令执行shell脚本时,可加-x选项查看
  2. 命令date
    • date +%Y:表示以四位数字格式打印年份
    • date +%y:表示以两位数字格式打印年份
    • date +%m:表示月份
    • date +%d:表示日期
    • date +%H:表示小时
    • date +%M:表示分钟
    • date +%S:表示秒
    • date +%w:表示星期,结果显示0则表示周日
    (二)shell脚本中的变量
  3. 数学运算
    • 数学计算要用[]括起来,并且前面要加符号$
  4. 和用户交互
    • read命令用于和用户交互,它把用户输入的字符串转为变量值
  5. shell脚本预设变量
    • shell脚本在执行时,后面可以跟一个或者多个参数
    • shell脚本中,$1是脚本的第一个参数,$2是脚本的第二个参数,以此类推
    • $0代表脚本本身
    (三)shell脚本中的逻辑判断
  6. 不带else
    • 具体格式:
    if 判断语句;then
    command
    fi
  7. 带有else
    • 具体格式:
    if 判断语句;then
    command
    else
    command
    fi
  8. 带有elif
    • 具体格式:
    if 判断语句1;then
    command
    elif 判断语句2;then
    command
    else
    command
    fi
  9. 和文档相关的判断
    • shell脚本中if还经常用于判断文档的属性,比如判断是普通文件还是目录,判断文件是否有读、写、执行权限等。if常用选项如下:
    • -e:判断文件或目录是否存在
    • -d:判断是不是目录以及是否存在
    • -f:判断是不是普通文件以及是否存在
    • -r:判断时候有读权限
    • -w:判断是否有写权限
    • -x:判断是否可执行
  10. case逻辑判断
    • 具体格式:
    case 变量 in
    value1)
    command
    ;;
    value2)
    command
    ;;
    *)
    command
    ;;
    esac
    • value不限制个数,*代表其他值
    (四)shell脚本中的循环
  11. for循环
    • 具体格式:
    for 变量名 in 循环条件;do
    command
    done
    • 循环条件可以是一组字符串或数字(用一个或多个空格隔开),也可以是一条命令的执行结果
    • 循环条件还可以引用系统命令的执行结果,但必须用反引号括起来
  12. while循环
    • 具体格式:
    while 条件;do
    command
    done
    • 若用冒号代替循环条件,可以做到死循环
    (五)shell脚本中的函数
    • shell脚本中,函数一定要写在最前面,不能出现在中间或最后,否则容易出错
    (六)shell脚本中的中断和继续
  13. break
    • break仅仅是退出当层循环,它的上一层循环不受影响
  14. continue
    • shell脚本中遇到continue时,会结束本次循环而不是整个循环
  15. exit
    • 类似上面两个,但作用范围更大,直接退出整个shell脚本