一、脚本的作用

批量处理、自动化地完成一系列维护任务、减轻管理负担。

 

二、什么是脚本

将平时使用的各种Linux 命令按顺序保存到一个文本文件,然后添加可执行权限

例:

1)新建一个脚本文件first.sh


Linux——Shell脚本的基本应用_文本文件

Linux——Shell脚本的基本应用_Shell_02

2)添加可执行权限

Linux——Shell脚本的基本应用_Linux_03

上述firsh.sh 脚本文件中,包括三条命令:cd /boot/  ,pwd  , ls -lh vml*。执行此脚本文件后,输出结果与依次单独执行这三条命令是相同的,从而实现了“批量处理”的自动化过程。

 

三、脚本的基本格式

一个合格的shell脚本程序应该遵循标准的脚本结构,而且输出友好的提示信息,更加容易读懂。对于代码较多,结构复杂的脚本,应添加必要的注释文字。

1)脚本声明

2)注释信息

3)可执行语句

4)输出友好的提示信息

例:

Linux——Shell脚本的基本应用_提示信息_04

执行后的输出结果:

Linux——Shell脚本的基本应用_文本文件_05

 

四、执行脚本文件的方式

1)脚本文件路径(脚本文件必须有X权限)

Linux——Shell脚本的基本应用_提示信息_06

2sh  脚本文件路径(不需要X权限)

Linux——Shell脚本的基本应用_Shell_07

3source  脚本文件路径(不需要X权限)


 Linux——Shell脚本的基本应用_Shell_08

五、重定向与管道操作

Linux——Shell脚本的基本应用_Linux_09

1)重定向输出

操作符:">" 覆盖文件

        ">>"追加文件

Linux——Shell脚本的基本应用_文本文件_10

例:覆盖文件

Linux——Shell脚本的基本应用_提示信息_11

例:追加文件

Linux——Shell脚本的基本应用_Shell_12

2)重定向输入

操作符:"<"

例:自动完成密码设置

Linux——Shell脚本的基本应用_提示信息_13

3)错误重定向

操作符:"2>"

例:

Linux——Shell脚本的基本应用_提示信息_14

4)混合输出

操作符:"&>"

将标准输出、标准错误输出同事保存到指定文件中

5)管道操作 "|"

作为不同命令之间协同工作提供了一种机制,位于管道符号"|" 左侧的命令输出的结果,将作为右侧命令的输入(处理对象),同一行命令中可以使用多个管道

1

Linux——Shell脚本的基本应用_文本文件_15

六、变量的引用

1)双引号("):允许通过 $ 符号引用其他变量值

Linux——Shell脚本的基本应用_文本文件_16

2)单引号('):禁止引用其他变量,即使有 $ ,视为普通字符

Linux——Shell脚本的基本应用_文本文件_17

3)反撇号(`):命令替换,提取命令执行后的输出结果,等同于 $()

Linux——Shell脚本的基本应用_提示信息_18

4)大括号({}):当变量和后面的字符容易出现混淆时永大括号隔开

Linux——Shell脚本的基本应用_Shell_19

5read 命令:提示用户输入信息,从而实现简单的交互过程

Linux——Shell脚本的基本应用_文本文件_20

6)设置变量的作用范围

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

例:

Linux——Shell脚本的基本应用_文本文件_21

全局变量设置:export 变量名

例:

Linux——Shell脚本的基本应用_Linux_22

 

7)数值变量的运算

格式:expr      变量1      运算符     变量2      【运算符         变量3】……

运算符

+ 加法运算

- 减法运算

\* 乘法运算

/ 除法运算

% 求模运算(又称为取余运算)

例:

Linux——Shell脚本的基本应用_Linux_23

七、特殊的shell 变量

1)环境变量:env命令查看当前工作环境下的环境变量

常见的环境变量

USER 用户名称

HOME 用户的宿主目录

LANG 语言和字符集

PWD 当前所在的工作目录

PATH 命令搜索路径

环境变量的全局配置文件为/etc/profile  在此文件中定义的变量作用于所有用户。

每个用户拥有自己的独立配置文件~/.bash_profile

2)位置变量

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

位置变量也成为位置参数,使用$1$2$3,……表示

例:以下脚本中$1=10 $2=11

Linux——Shell脚本的基本应用_文本文件_24

Linux——Shell脚本的基本应用_Linux_25

3)预定义变量

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

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

$?              表示前一条命令执行后的返回状态,返回值为0表示执行正确,非0表示异常

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

例:自动备份文件脚本

Linux——Shell脚本的基本应用_文本文件_26

执行后的结果

Linux——Shell脚本的基本应用_Linux_27