shell脚本介绍、结构和执行、date、 脚本中的变量、逻辑判断、文件目录属性、if特殊用法 、case判断、for循环 、while循环、break跳出循环、continue结束本次循环、exit

本文详细介绍了Shell脚本的基础知识,包括脚本的结构、执行方式,以及date命令的使用。讨论了Shell脚本中的变量、逻辑判断、文件目录属性检查、if特殊用法、case判断、for和while循环,还有break和continue在循环控制中的应用。通过实例展示了如何编写和执行Shell脚本,以及如何利用date命令处理时间日期。
摘要由CSDN通过智能技术生成

 

shell脚本介绍

  • shell是一种脚本语言 和传统的开发语言比较,会比较简单
  • shell有自己的语法;可以使用逻辑判断、循环等语法
  • 可以自定义函数,目的就是为了减少重复的代码
  • shell是系统命令的集合
  • shell脚本可以实现自动化运维,能大大增加我们的运维效率

shell脚本结构和执行

  • 开头需要加#!/bin/bash
  • 以#开头的行作为解释说明
  • 脚本的名字以.sh结尾,用于区分这是一个shell脚本
  • 执行方法有两种
  • chmod +x 1.sh; ./1.sh
  • bash 1.sh
  • 查看脚本执行过程 bash -x 1.sh
  • 查看脚本是否语法错误 bash -n 1.sh

实践操作:

  • 创建一个shell文件夹,并切入到文件夹中
[root@aminglinux ~]# mkdir shell
[root@aminglinux ~]# cd shell/
[root@aminglinux shell]#
  • 写shell脚本:#! /bin/bash //第一行必须这么写,固定格式,作用就是脚本若是在当台机器上去执行,可以不加这一行也没关系,因为它知道下面若干条的命令能在这台机器上去执行,去解析
[root@aminglinux shell]# vi 1.sh
#!/bin/bash
echo "abc"
w
ls
  • 执行脚本——>sh 01.sh
[root@aminglinux shell]# sh 1.sh
abc
 15:17:34 up  5:30,  1 user,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.222.1    09:48    6.00s  0.12s  0.05s w
1.sh
  • 在当前终端里,把01.sh中的#! /bin/bash 去掉后在执行脚本,会看到得到的结果相同,不会出现任何的问题,这就说明这台机器是能识别里面一条一条的命令的,去运行这里面的命令;但若是换一台机器,就不一定能执行了
  • 在第一行,文件头指定 #!/bin/bash ,接下来要运行的命令是通过哪一个解释器来操作的,通常都是 /bin/bash 解释器来执行的
  • 给01.sh文件一个执行权限
[root@aminglinux shell]# chmod a+x 1.sh
  • 执行shell脚本 ./01.sh 能这样执行,说明这些命令被解析了,被/bin/bash认识了
[root@aminglinux shell]# ./1.sh
abc
 15:21:19 up  5:33,  1 user,  load average: 0.08, 0.03, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.222.1    09:48    7.00s  0.10s  0.00s w
1.sh
  • /bin/bash也是一条命令, /bin/bash 和 /bin/sh 是同一个文件
[root@aminglinux shell]# ll /bin/bash
-rwxr-xr-x. 1 root root 960472 8月   3 2017 /bin/bash
[root@aminglinux shell]# ll /bin/sh
lrwxrwxrwx. 1 root root 4 6月  10 04:03 /bin/sh -> bash
  • 1.sh文件内容就是被/bin/bash所解析的;若没有 /bin/bash ,可以使用 /bin/bash 1.sh去执行
[root@aminglinux shell]# /bin/bash 1.sh
abc
 15:26:49 up  5:39,  1 user,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.222.1    09:48    1.00s  0.12s  0.01s w
1.sh
  • 若是在shell脚本中在写入第二遍 #号开头的行, 就表示解释说明的作用
  • 脚本的一般都是以.sh结尾,是为了区分这是一个shell脚本,否则需要打开这个文件,才知道是shell脚本

运行shell脚本有两种方法

  • 一种是sh 01.sh运行shell脚本
  • 另一种方法:
  1. 先 chmod a+x 1.sh 给文件加一个执行权限
  2. 再 ./1.sh 去执行
  • 这里的 ./ 就相当于一个相对路径,相对当前一个路径
  • 也可以使用绝对路径去执行脚本 /root/shell/01.sh ,其实就是找到这个文件去执行
[root@aminglinux shell]# /root/shell/1.sh
abc
 15:29:52 up  5:42,  1 user,  load average: 0.16, 0.05, 0.06
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.222.1    09:48    0.00s  0.13s  0.00s w
1.sh
  • 查看脚本执行过程 sh -x 1.sh 或者bash -x 1.sh
  1. -x,就是显示脚本执行的过程
  2. 每一个加号,表示一个操作步骤
[root@aminglinux shell]# sh -x 1.sh
+ echo abc
abc
+ w
 15:32:10 up  5:44,  1 user,  load average: 0.02, 0.03, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.222.1    09:48    2.00s  0.14s  0.01s w
+ ls
1.sh
  • 查看脚本是否有错误 sh -n 1.sh
  1. 若是没有任何的输出,那么脚本则没有错误
  2. sh -n 1.sh命令是检测是否存在语法错误
[root@aminglinux shell]# sh -n 1.sh

date命令用法

  • date +%Y-%m-%d, date +%y-%m-%d 年月日
  • date +%H:%M:%S = date +%T 时间
  • date +%s 时间戳
  • date -d @1504620492
  • date -d "+1day" 一天后
  • date -d "-1 day" 一天前
  • date -d "-1 month" 一月前
  • date -d "-1 min" 一分钟前
  • date +%w, date +%W 星期

date命令用法实践

  • date命令,会显示当前系统时间日期
[root@aminglinux ~]# date
2018年 07月 29日 星期日 15:44:05 CST
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值