Linux系统脚本第一章:shell编程规范与变量

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、shell脚本概述

1.什么是shell?

Shell是一个特殊的应用程序,它介于操作系统内核与用户之间,充当了一个“命令解释器”的角色,负责接收用户输入的操作指令(命令)并进行解释,将需要执行的操作传递给内核执行,并输出执行结果。

2.shell脚本的作用

(1)自动化运维
(2)批量化重复操作可以编写脚本结合计划任务自动周期运行
(3)轻管理员工作量
(4)提高处理文本文件的速度
(5)避免配置出错

3.shell脚本语言

shell脚本语言也叫动态语言,也是编程语言的一种,用来控制软件应用程序。脚本通常以文本形式保存,只在被调动的时候才进行解释和编译。

4.shell脚本应用场景

1.重复性操作
2.交互性任务
3.批量事务处理
4.服务运行状态监控
5.定时任务执行

二、shell脚本实操

1.编写脚本代码

1.使用vim文本编辑器
2.每执行一条linux命令,按执行顺序依次编写

[root@localhost ~]# vim first.sh

在这里插入图片描述
在这里插入图片描述

2.shell脚本形式

sh first.sh bash first.sh source first.sh
前三种不需要赋予执行权限,只适用于脚本调试阶段 ./first.sh 一旦正式上线,必须给执行权限运行
在这里插入图片描述
在这里插入图片描述

3.重定向操作与管道操作

3.1重定向操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2面试题:怎么样不删除文件,清空文件的内容?

在这里插入图片描述

3.3管道符 “|”

将左侧的命令输出结果,作为右侧命令的处理对象。
在这里插入图片描述

三、shell变量的作用、类型

1.变量的作用

用来存放系统和用户需要使用的特定参数(值)

2.变量名的规范

1、不要使用系统的命令作为变量名
2、不要使用中文
3、不能特殊符号开头 可以用_来开头
4、在指定变量名的时候有一个默认的规则:计算机:computer 学生:student a= b=
5、要有注释,还要注意前后一致

注:整数 int
字符串 string
布尔 真假 0 1
浮点 1.1 2.2

3.变量类型

3.1自定义变量

由用户自己定义、修改和使用

在这里插入图片描述
在这里插入图片描述

3.1.1只读变量

在这里插入图片描述

3.1.2强引用和弱引用

在赋值变量时,单引号和双引号无区别。
在打印变量时——双引号:弱引用还是原来的值
单引用:强引用就不再是原来的值,变成$b,变成字符串
反撇号:提取命令的执行结果,然后再给变量赋值
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.1.3read命令作为输入的变量

read -p “输入一个值:” num

在这里插入图片描述

vim test.sh
在这里插入图片描述
在这里插入图片描述

4.全局变量

所有用户自定义变量在所有的子shell环境中都可以使用。

临时定义全局变量
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
永久定义全局变量
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.1全局变量的优点

1.全局范围
2.持久
3.共享

副作用:如果相同变量名,直接引用全局变量,会导致不确定性。
在脚本中一般使用自定义变量
expr 1 + 2
expr 2 - 1
expr 2 * 2
expr 2 / 2
expr 2 % 2 取余

乘法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
取余
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
i++ for i=1 i<=10 先赋值再加一
i-- 先赋值再减一
++i 先加再赋值

bc计算器:既可以支持整数,也可以浮点
在这里插入图片描述
在这里插入图片描述
scale:内部自带的全局变量,定义小数点后几位
在这里插入图片描述

5.环境变量

作用:系统自带,用于设置工作环境,配置系统行为、传递信息、控制程序的执行。
这些环境变量,所有用户都可用、可见。

常见的环境变量:

$USER 表示用户名称

$HOME 表示用户的宿主目录

$LANG 表示语言和字符集

$PWD 表示当前所在工作目录

$PATH 表示可执行用户程序的默认路径
在这里插入图片描述

在这里插入图片描述

6.位置变量

定义:也称为命令行参数,是在运行脚本或程序时传递给它们的值。位置变量用于将外部数据传递给脚本或程序,以便根据需要进行处理。

$ n 传参顺序,从左到右 n为数字,$ 0代表命令本身,$ 1-$ 9代表带一个到第九个参数,十以上的参数需要使用大括号表示,比如第十个参数为$ {10}
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.预定义变量

通常由编程语言或脚本解释器提供,并根据需要自动设置和更新,不能修改。
$ *、$@:表示命令或脚本要处理的参数。
$0:表示当前执行的脚本或命令的名称。
$#:表示命令或脚本要处理的参数的个数。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
$ *加双引号
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
$ *不加双引号
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
$ @加双引号
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
$?:表示前一条命令或脚本执行后的返回状态码,返回值为0表示执行正确,返回任何非0值均表示执行出现异常。也常被用于Shell脚本中return退出函数并返回的退出值。
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值