linux操作系统(3)

六、shell脚本编程

6.1 简介

  • 也是一种编程语言,最大的特点的就是简单

  • 在shell中,其实就是包含了各种linux命令

  • 这个保存了命令的文件就是shell脚本

  • 通过shell脚本可以实现批量执行linux命令

6.2 写shell脚本的流程

第一步:用 vi/vim 去创建一个后缀是.sh的文件

vi是Linux的文本编辑器

vim是vi的升级版,在vim中可以实现内容的高亮显示

vim可能没有安装,可以执行 yum install vim 进行安装

注意:

1)Linux中文件的后缀,对于文件的属性,没有任何影响

2)因此,vi创建的shell脚本的后缀可以不是.sh

# 例如,创建一个文件 new.sh
[root@localhost ~]# vim new.sh

第二步:在sh文件中写入指令

第一行固定写法:#!/bin/bash

从第二行开始,写你想要执行的命令

# 要求:在shell脚本中,
# 1)在home下创建一个文件a.txt       touch /home/a.txt
# 2)删除tmp下的所有的文件           rm -rf /tmp/*
# 3)创建一个用户tom                useradd tom
# 4)查看etc下有哪些文件             ls /etc

shell脚本的内容

#!/bin/bash
​
touch /home/a.txt
rm -rf /tmp/*
useradd tom
ls /etc

第三步:给脚本赋予执行权限

[root@localhost ~]# chmod +x new.sh

第四步:执行脚本

[root@localhost ~]# ./new.sh

6.3 shell流控制

6.3.1 循环

  • 周而复始执行一个命令

格式

for 变量  in  列表
do
    
done

for的执行流程

1)量列表中的元素,拿出一个赋值给变量,然后执行do和done之间的代码

2)do和done之间的代码执行完成后,会再次去列表中取出一个元素,然后执行do和done之间的代码

3)do和done之间的代码执行完成后,会再次去列表中取出一个元素,然后执行do和done之间的代码

4)当列表中的元素用尽了,就会结束循环,结束循环后,才会去执行done后面的代码

案例:

#!/bin/bash
​
for num in 1 2 3 4 5 6 7 8 9 10
do
    echo "hello"
    echo "a"
done
​
echo "over"
​
​
执行流程
首先 将 1 赋值给 num,然后输出 hello 和 a
输出后,再去将2 赋值 num,然后输出 hello 和 a
输出后,再去将3 赋值 num,然后输出 hello 和 a
输出后,再去将4 赋值 num,然后输出 hello 和 a
...
输出后,再去将10 赋值 num,然后输出 hello 和 
此时列表结束,此时会执行done后面的内容,也就是输出over

6.3.2 判断

  • 只有当符合条件的时候,才会执行命令

格式1

if [ 判断条件 ];then
     语句
fi
​
# 这种格式称之为单分支格式
# 中间的语句,必须当条件满足的时候,才会执行

格式2

if [ 判断条件 ];then
     语句1
else
     语句2
fi
​
# 这种格式称之为双分支格式
# 中间的语句1,必须当条件满足的时候,才会执行
# 当条件不满足的时候,会去执行语句2

案例:

#!/bin/bash               # 指定解释器
​
m=3                       # 定义变量,变量名是m,变量中的值是3
n=5                       # 定义变量,变量名是n,变量中的值是5
​
if [ $m -gt $n ];then     # 条件是m中的值大于n中的值。变量名前必须加上$才能获得变量中的值
    echo "ok"             # 当条件成立,输出这里的内容
    echo "$m" 
else
    echo "error"          # 当条件不成立,输出这里的内容
    echo "$n"
fi

6.4 shell脚本和计划任务

案例:要求每天晚上23点55分执行如下操作

1)在home下创建一个文件a.txt touch /home/a.txt

2)删除tmp下的所有的文件 rm -rf /tmp/*

3)创建一个用户tom useradd tom

4)查看etc下有哪些文件 ls /etc

第一步:将需要完成的操作写入到脚本中

  • 见上面

第二步:将脚本放到home下,脚本名叫job.sh

  • 操作过程-略

第三步:创建计划任务,在规定的时间去执行操作

55 23 * * * bash /home/job.sh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值