Shell脚本
什么是shell脚本
shell脚本并不能作为正式的编程语言,因为它是在Linux的shell中运行的,所以称为shell脚本。事实上,shell脚本就是一些命令的集合。
比如我想实现配置yum源的操作
- 创建目录
- 将CD设备挂载到目录
- 将/etc/yum.repos.d/下的文件删除
- 创建local.repo文件,配置本地YUM源文件
完成以上简单的四步命令需要在shell窗口中输入四次命令 这不算太难 如果是输入复杂的命令 一次一次敲键盘会很麻烦 所以我们不妨把所有操作都记录在一个文档中 然后去调用文档中的命令 这样就可以一步操作 这个文档就是shell脚本.
Shell脚本的创建和执行
开始编写我们的第一个shell脚本
[root@localhost sbin]#vi first.sh
#! /bin/bash
##This is my first shell script.
##Writen by sym 2021-01-15.
date
echo "Hello world!"
Shell脚本通常都以.sh为后缀名 并不是不加.sh的脚本就不能执行 只是为了方便识别 所以以后看到.sh为后缀的文件 那么他可能是一个shell脚本.
本例中 脚本文件的第一行要以#! /bin/bash开头 表示该文件使用的是bash语法 常用的语法还有sh,awk,csh等 如果不写第一行 shell脚本也可以执行 默认为bash语法 但是不符合规范 #表示注释 后面跟一些该脚本的相关注释内容 方便提示此脚本的作用
下面我们执行这个脚本
[root@localhost sbin]# sh first.sh
Fri Jan 15 12:53:56 EST 2021
Hello world!
还有另一种执行方法
[root@localhost sbin]# ./first.sh
-bash: ./first.sh: Permission denied (权限不足)
[root@localhost sbin]# chmod +x first.sh
[root@localhost sbin]# ./first.sh
Fri Jan 15 12:54:41 EST 2021
Hello world!
使用该方法运行shell脚本的前提是脚本本身具有执行权限 所以要给脚本加一个x权限 另外 用sh命令执行shell脚本时可以加-x选项来查看脚本的执行过程 这样有利于我们调试此脚本
[root@localhost sbin]# sh -x first.sh
+ date
Fri Jan 15 12:58:04 EST 2021
+ echo 'Hello world!'
Hello world!
命令date
date命令在shell脚本中常用的用法如下
date+%Y 表示以四位数格式打印年份
+%y 表示以两位数格式打印年份
+%m 表示月份
+%d 表示日期
+%H 表示小时
+%M 表示分钟
+%S 表示秒
+%w 表示星期 结果显示0则表示周日
[root@localhost sbin]# vi four.sh
#! /bin/bash
date +"%Y-%m-%d %H:%M:%S"
[root@localhost sbin]# sh four.sh
2021-01-15 13:11:39
一键部署脚本
学了前面的脚本知识之后就可以自己编写一些简单的脚本了 比如一键部署yun源和一键部署ftp等
一键部署yum源
[root@localhost sbin]# vi second.sh
#! /bin/bash
mkdir /opt/centos
echo "创建目录"
mount /dev/cdrom /opt/centos
echo "挂载成功"
rm -f /etc/yum.repos.d/*
echo "删除目录内容"
cat > /etc/yum.repos.d/local.repo <<EOF
[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1
EOF
echo "编辑成功"
yum clean all
yum repolist
echo "yum挂载完毕"