Shell概述与编程规范

一、shell脚本概述

1、shell脚本的概念:

将要执行的命令按顺序保存到一个文本文件

给该文件可执行权限

可结合各自shell控制语句以完成更复杂的操作

2、shell脚本应用场景

重复性操作

交互性任务

批量事务处理

脚本运行状态监测

定时任务执行

简单来说,将平时使用的各种linux命令按顺序保存到一个文本文件,添加可执行权限,从而完成更复杂的操作,就是shell脚本。

3、shell的作用:命令解释器,“翻译官”

介于系统内核与用户之间,负责解释命令行

用户的登录shell

默认使用的shell程序,一般为/bin/bash

二、编写一个shell脚本

1、编写脚本代码:

使用vim文本编辑器(vim能检查语法结构,编写是否存在问题)

每一条linux命令,按执行顺序编写

赋予可执行权限:使脚本具有可执行属性

chmod +x [文件名]

2、执行方法

方法一:sh 脚本文件路径 (不需要执行权限)

方法二:./脚本文件路径 (需要执行权限来操作)

方法三:source 脚本文件路径 (也不需要执行权限)

更完善的脚本构成包括

脚本声明 #!/bin/bash

注释信息 # 注释信息

可执行语句

三、重定向

标准输入(STDIN):默认的设备是键盘,文件编号为0,命令将从标准输入文件中读取在执行过程需要的输入数据。

标准输出(STDOUT):默认的设备是显示器,文件编号为1,命令将执行后的输出结果发送到标准输出文件。

标准错误(STDERR):默认设备是显示器,文件编号为2,命令将执行期间的各种错误信息发送到标准错误文件。

标准输入、标准输出和标准错误默认使用键盘和显示器作为关联的设备,与操作系统进行交互,完成最基本的输入、输出操作,即从键盘接收用户输入的各种命令字串、辅助控制信息,并将命令结果输出到屏幕上;如果命令执行出错,也会将错误信息反馈到屏幕上。

在实际的Linux系统维护中,可以改变输入、输出内容的方向,而不适用默认的标准输入、输出设备(键盘和显示器),这种操作称为重定向。
在这里插入图片描述

重定向操作
在这里插入图片描述

重定向输入例子:

vi pass.txt

useradd lisi

passwd --stdin lisi < pass.txt #更改用户lisi的密码

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

管道操作符号 “|”

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

Shell变量的作用、类型
在这里插入图片描述

四、自定义变量

在这里插入图片描述

当变量名称后面紧跟其他字符相混淆时,需添加“{ }”将其括起来。

echo ${product}2.5

变量赋值的特殊操作:
在这里插入图片描述

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

设置变量的作用范围

默认情况下,新定义的变量只在当前的shell环境中有效,因此成为局部变量。当进入子程序或新的子shell环境时,局部变量将无法再使用。

为了使用户定义的变量在所有子shell环境中能够继续,可以通过export将指定变量导出为全局变量。

数值变量的计算

expr 变量1 运算符 变量2 [运算符 变量3] …
在这里插入图片描述

关于嵌套exp的语法:
T=expr $( expr $X + $Y ) \ $X

五、特殊的shell变量

1、环境变量

由系统提前创建,用来设置用户的工作环境

配置文件:/etc/profile 、~/.bash_profile

常见的环境变量:

PWD、PATH

USER、SHELL、HOME

2、只读变量

Shell变量中一种特殊情况,一经设定,其值是不可改变的,这种变量被称为只读变量。
在这里插入图片描述

注:只读变量的改变是不可逆的,一经只读,无法挽回

3、位置变量(也称为位置参数,使用$1,$2,$3…$9表示)

当执行命令行操作时,第一个字段表示命令名或脚本程序名,其余的字符串参数安装从左到右的书序依次赋值给位置变量。

在这里插入图片描述

4、预定义变量

$#:表示命令行中位置参数的个数

$*:表示所有位置参数的内容

$?:表示前一条命令执行后的返回状态,为0即正确,任何非0即出现异常

$0:表示当前执行的脚本或程序的名称

猜你喜欢

转载自blog.csdn.net/yuiLan0/article/details/109155642