20.1 Shell脚本介绍
shell是什么
20.2 shell脚本结构和执行
- 开头需要加#!/bin/bash
- 以#开头的作为解释说明
- 脚本的名字以.sh结尾,用于区分这是一个shell脚本
- 执行方法有两种
实例01:
[root@qingyun-01 shell]# cat 1.sh #!/bin/bash echo "123"
- chmod +x 1.sh;./1.sh
[root@qingyun-01 shell]# chmod a+x 1.sh [root@qingyun-01 shell]# ./1.sh 123
- 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]