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

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脚本。
    在这里插入图片描述
    在这里插入图片描述

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux命令行中的shell脚本是一种用于自动化执行多个命令的脚本语言。它可以通过编写一系列命令和逻辑来实现特定的任务。通常情况下,shell脚本以.sh为文件扩展名。 在Linux中,编写shell脚本可以帮助我们更高效地管理和操作系统。引用提到,shell脚本并不难学习,它可以让我们更好地理解和使用Linux系统中的各种命令和脚本。 例如,引用中提到的挂载软驱和光驱的命令,可以通过在命令行输入"mount /mnt/cdrom"和"mount /mnt/floppy"来挂载光驱和软驱。 另外,引用中提到的kill命令是用于终止后台进程的命令。我们可以使用kill命令向进程发送指定的信号来结束它。kill命令的语法相对简单,可以通过两种方式来使用。 总而言之,Linux命令行中的shell脚本是一种强大的工具,可以帮助我们实现自动化任务和更高效地管理系统。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Linux 命令行&mdash;&mdash;shell 脚本](https://blog.csdn.net/weixin_43621315/article/details/125464093)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [linuxshell脚本命令使用详解](https://blog.csdn.net/weixin_51178981/article/details/118162681)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值