设为首页 收藏本站
查看: 855|回复: 0

2018-4-17 16周5次课 shell脚本 date、if

[复制链接]
累计签到:2 天
连续签到:1 天
发表于 2018-8-22 09:42:43 | 显示全部楼层 |阅读模式
  
  20.1 shell脚本介绍
  
  ·shell是一种脚本语言
  ·可以使用逻辑判断、循环等语法
  ·可以自定义函数
  ·shell是系统命令的集合
  ·shell脚本可以实现自动化运维,能大大增加我们的运维效率
  
  
  
  
20.2 shell脚本结构和执行  
  
  ·开头需要加 #!/bin/bash,在本机上可以运行,换台机器就不一定能执行。在行首文件头处指定接下来要运行的命令是通过哪一个解释器进行操作的。
  ·以#开头的行作为解释说明,脚本的名字以.sh结尾,用于区分这是一个shell脚本
DSC0000.jpg

  ·执行方法有两种:1,bash 或 sh sh文件 ;2,给文件加执行权限,然后 ./文件
  1,bash 1.sh/bin/bash 实际上就是 /bin/sh
[root@localhost shell]# ll /bin/bash  
-rwxr-xr-x. 1 root root 960472 8月   3 2017 /bin/bash
  
[root@localhost shell]# ll /bin/sh
  
lrwxrwxrwx. 1 root root 4 12月 28 05:37 /bin/sh -> bash
  2,有执行权限的话,chmod +x 1.sh; 可以直接 ./1.sh
  3,其实直接输入文件的绝对路径也可以执行
[root@localhost shell]# /root/shell/01.sh  
123
  
22:22:27 up  2:21,  1 user,  load average: 0.02, 0.02, 0.05
  
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
  
root     pts/0    192.168.65.1     20:08    3.00s  0.06s  0.00s /bin/bash /root/shell/01.sh
  
总用量 4
  
-rwxr-xr-x 1 root root 32 4月  16 22:22 01.sh
  ·查看脚本执行过程:bash -x 1.sh  /  sh -x 1.sh
[root@localhost shell]# sh -x 01.sh  
+ echo 123
  
123
  
+ w
  
22:23:55 up  2:23,  1 user,  load average: 0.00, 0.01, 0.05
  
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
  
root     pts/0    192.168.65.1     20:08    3.00s  0.07s  0.00s sh -x 01.sh
  
+ ls -l
  
总用量 4
  
-rwxr-xr-x 1 root root 32 4月  16 22:22 01.sh
  ·查看脚本是否语法错误:bash -n 1.sh
  故意写错脚本(随机的字符是不报错的)
DSC0001.jpg

[root@localhost shell]# sh -n 01.sh  
01.sh:行10: 语法错误: 未预期的文件结尾
  
  
  
  
20.3 date命令用法  
  
[root@localhost ~]# date  
2018年 04月 17日 星期二 20:15:04 CST
  ·date  +%Y-%m-%d, date +%y-%m-%d 年月日
[root@localhost ~]# date +%Y-%m-%d  
2018-04-17
  
[root@localhost ~]# date +%y-%m-%d
  
18-04-17
  
[root@localhost ~]# date +%d            ## d 日期
  
17
  
[root@localhost ~]# date +%D            ## 美国格式年月日
  
04/17/18
  
[root@localhost ~]# date +%M            ## M 分钟
  
06
  
[root@localhost ~]# date +%m            ## m 月份
  
04
  
[root@localhost ~]# date +%F            ## 日期
  
2018-04-17
  ·date  +%H:%M:%S = date +%T 时间
[root@localhost ~]# date  +%H:%M:%S  
21:29:15
  
[root@localhost ~]# date +%T
  
21:29:35
  
[root@localhost ~]# date +%H            ##小时
  
21
  
[root@localhost ~]# date +%h            ##月份(带格式,设置中文就是 4月,英文就是 Aprl)
  
4月
  
[root@localhost ~]# date +%M            ##分钟
  
31
  
[root@localhost ~]# date +%m            ##月份
  
04
  
[root@localhost ~]# date +%S            ##秒
  
44
  
[root@localhost ~]# date +%s            ##世时间戳
  
1523971907
  ·date +%s  时间戳
  距离1970-01-01-00-00-00 过去多少秒
  ·date +%w, date +%W 星期
[root@localhost ~]# date +%w## 星期几  
2
  
[root@localhost ~]# date +%W## 今年的第几周
  
16
  ·date -d @1504620492
[root@localhost ~]# date -d @1504620492##知道时间戳查日期  
2017年 09月 05日 星期二 22:08:12 CST
  
[root@localhost ~]# date +%s -d "2018-4-17 21:52:30"##知道日期查时间戳
  
1523973150
  ·date -d "+1day"  一天后
[root@localhost ~]# date -d "+1day"  
2018年 04月 18日 星期三 21:46:48 CST
  
[root@localhost ~]# date -d "+1day" +%F
  
2018-04-18
  ·date -d "-1 day"  一天前
  ·date -d "-1 month" 一月前        ##年year
[root@localhost ~]# date -d "-1 month" +%F  
2018-03-17
  ·date -d "-1 min"  一分钟前        ##小时hour,秒second
[root@localhost ~]# date -d "-1 min" +%T  
21:47:09
[root@localhost ~]# cal  
四月 2018
  
日 一 二 三 四 五 六
  
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
  
29 30
  
  
  
  
20.4 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 第二个 ....       $#表示参数个数
  ·数学运算a=1;b=2; c=$(($a+$b))或者$[$a+$b]



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-554958-1-1.html 上篇帖子: 利用shell开发rsync服务启动脚本 下篇帖子: 异常处理、模块包、时间模块、subprocess(调用shell命令)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表