Linux 操作系统(五)——shell脚本

本文详细介绍了Shell脚本的基础知识,包括脚本概念、变量使用、逻辑判断、循环控制以及函数应用。通过实例展示了如何编写和执行Shell脚本,帮助读者快速掌握Shell脚本的编写技巧,提升Linux系统管理效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

shell 语法概述

  • echo 相当于cout,print

shell脚本 概念

  • shell 脚本并不是真正的编程语言,因为 SHELL脚本 在 Linux 的 shell 中运行

  • 实际上 shell 脚本就是 命令的集合,类比于 windows 的批处理命令

比如要实现下述操作:

  1. 进入 /tmp 目录
  2. 列出当前目录下的文件
  3. 把所有文件复制到 /root
  4. 删除当前目录下的文件

完成上述操作,需要执行4个命令,要按4次回车。如果要求你每天都做重复的操作,就会显得很麻烦
因此我们可以将上述4步操作集成到一个shell脚本中,一次完成

shell 脚本使用基础

脚本存放目录

  • shell脚本 是提高服务器管理维护的工具
  • 通常优秀的管理员会将自己编写的脚本放在一个固定的目录,便于维护
  • 简单上手一下:
    • cd/usr/local/sbin // 假定这个目录是我们放置shell的目录
    • vim first.sh
      在 vim 中,使用root用户输入下面内容并保存
      请添加图片描述
    • chmod +x first.sh:给脚本赋予执行权限,脚本因为是可执行文件,必须要有执行权限
    • ./first.sh:执行脚本
      请添加图片描述
      脚本完成了两件事,1:显示时间;2:显示 ”Hello World!“

shell 脚本使用变量

1. 使用变量

编写下面脚本vim ./variable.sh
请添加图片描述
有两处错误,更正后如下:
请添加图片描述
运行结果如下:
请添加图片描述

2. 数学运算

  • 注意数学计算要用中括号[ ]括起来
  • 数学运算前也要加 $
    请添加图片描述

3. 用户交互输入

用户输入x,y,计算x+y并输出:
请添加图片描述
请添加图片描述

shell 脚本使用判断

1. 脚本选项使用

编写脚本 option.sh
在这里插入图片描述
运行如下:
在这里插入图片描述
其中,$1, $2 为跟在脚本后的第一个、第二个选项;$0 代表脚本自身的名字
在这里插入图片描述
在这里插入图片描述

判断表达式

1. shell中的逻辑判断

  • shell中使用 if 进行逻辑判断
    在这里插入图片描述
    注意[ ]前后有空格,不能少
    在这里插入图片描述
  • 逻辑表达式用 [ ],且前后有空格,不能少
变量,a,b均为整数含义
a -eq breturn a == b
a -ne breturn a != b
a -gt breturn a > b
a -lt breturn a < b
a -ge breturn a >= b
a -le breturn a <= b

在这里插入图片描述
对上述逻辑改进,

  • && 表示且; || 表示或
  • elif:表示 else if

2. 字符串判断

变量,s1,s2均为 字符串含义
-z s1return s1.empty()
-n s1return !s1.empty()
s1==s2return s1==s2
s1!=s2return s1!=s2

3. 文本判断

2. 字符串判断

变量,file为文本含义
-a file是否存在该文件,等同于-e
-b file文件类型是否为专用设备
-c file文件类型是否为 签字字符
-d file文件类型是否为文件夹
-f file文件类型是否为普通文件
-O file 大写字母 O O O文件是否拥有当前文件
-r -w -x文件是否 可读、可写、可执行
-s文件是否存在,是否大于0字节

case 逻辑判断

  • 为什么要增加一个case逻辑判断了,if 不够用吗?
    答:if 逻辑判断用于条件比较少,比较清晰的情况

  • 当逻辑判断条件比较多的时候,我们使用 case 逻辑
    case 语法如下:

case $var in
value1)
	command1
	;;
value2)
	command2
	;;
*)
	command3
	;;
esac

例如:case常用于服务管理,如/etc/init.d/network

#! /bin/bash
read -p "input a number:" Num
case $Num in
	1) echo 'You select 1'
	;;
	2) echo 'ou select 2'
	;;
	3) echo 'You select 3'
	;;
	4|5) echo 'ou select 4 or 5'
	;;
	*) echo 'default'
	;;
easc

for 循环、while循环、until循环

for 循环

语法如下

for 变量名 in 循环条件;do
	command
done

代码如下:

#!/bin/bash
for i in `seq 1 5`;do
	echo $i
done

注释:反引号seq 1 5反引号 表示 1 2 3 4 5 五个数,这里是反引号,表示系统命令

关于系统命令,我们也可以这样调用
在这里插入图片描述

while循环

语法如下

while 条件;do
	command
done

代码如下
在这里插入图片描述

until循环

语法与while类似,不过until是退出条件,如下

until 条件;do
	command
done

shell 中的函数

在实际 shell 使用过程中,我们经常会重复调用同样功能的代码,这段代码可以写成一个函数
在这里插入图片描述
在这里插入图片描述

break 中断、continue中断、exit中断

  1. break

    在这里插入图片描述

  2. continue
    在这里插入图片描述
    在这里插入图片描述

  3. exit
    exit命令,直接退出整个shell脚本。
    在这里插入图片描述
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值