一、Shell脚本概述
1、shell脚本概述
将要执行的命令按顺序保存到一个文本文件
给该文件可执行权限
可结合各种shell控制语句以完成更复杂的操作
2、shell脚本应用场景
重复性操作
交互性任务
批量事务处理
服务运行状态监控
定时任务执行
3、shell的作用
shell:命令解释器,介于系统内核与用户之间,一种被称为解释性语言或者脚本语言的计算机语言。充当"翻译官"的作用;
Linux系统中运行的一种特殊程序,用户登录Linux系统时,自动加载一个Shell程序;
Linux系统中默认使用的Shell程序时bash,文件位于/bin/bash;
不同shell的内部指令,运行环境会有区别
4、shell基本构成
脚本申明(解释器):若第一行为“#!/bin/bash” ,表示此行一下的代码语句是通过/bin/bash程序来结实执行,#!/bin/bash为默认解释器,还有其他类型的解释器,比如#!/usr/bin/python、#!/usr/bin/expect。
注释信息:以“#”开头的语句表示为注释信息,被注释的语句在运行脚本时将不被执行。
可执行语句:比如echo命令,用于输出“ ”之间的字符串。
5、shell脚本的执行
5.1 指定路径的命令,要求文件必须有执行(x)权限
5.2 指定shell来解释脚本,不要求文件必须有写(x)权限
二、重定向
1、重定向——交互式硬件设备
2、重定向——重定向操作(用于自动化脚本,输出查证)
三、管道操作符号
管道操作符号“|”,将左侧命令输出结果,作为右侧命令的处理对象
命令行格式: cmd1 | cmd2 [……| cmdn]
四、shell脚本变量
1、变量的定义
变量就是会变的量
可以通过变量名得到变量值。在内存上开辟一个记录数据的空间,给它起个名字,如name,num 等,这些就是变量名。而存放在该空间的数据就是变量的值。
2、变量的格式
变量名=变量值
3、变量名命名规则
- 变量名必须是以字母或下划线开头,名字中间只能由字母,数字,下划线 "_" 组成,不能有小数点,特殊字符,空格,标点符号等;
- 变量名的长度不得超过255 个字符;
- 变量名在有效范围内必须是唯一的;
- 变量名不能和系统命令,系统变量等冲突;
- 变量名可以将开头字母打下,以防和系统命令等冲突。
4、查看变量名
可以用echo $变量名,查看变量的值
5、变量作用范围
可以通过内部命令export将指定的变量导出为全局变量,使用户定义的变量在所有的子Shell环境中能够继续使用。
格式1:export 变量名
格式2:export 变量名=变量值
可以使用 pstree 命令查看Shell环境,输入 bash 命令进入子Shell环境,按Ctrl+D组合键或输入 exit 命令退出子Shell环境。
五、自定义变量
格式:变量名=变量值
1、引号的使用
1.1 双引号"":允许通过$符号引用其他变量值,不取消特殊符号的释义
1.2 单引号‘‘:禁止引用其他变量值,$视为普通字符,取消特殊符号的释义
1.2 反撇号``:命令替换,提取命令执行后的输出结果,作用与$()相同
六、从键盘输入内容为变量赋值
1、格式:read [-p "提示信息"]变量名
echo $"变量名"
2、格式:echo -n "提示信息"
read 变量名
echo $变量名
七、整数变量的运算
1、格式:expr 变量1 运算符 变量2 (运算符 变量3)
2、运算符:+加法、-减法、\*乘法、/除法、%取余
常用的运算表达式:
使用 env 命令可以查看到当前工作环境下的环境变量
变量USER表示用户名称,HOME表示用户的宿主目录,LANG表示语言和字符集,PWD表示当前所在的工作目录,变量PATH表示可执行程序的默认搜索路径。
九、只读变量
用于变量值不允许被修改的情况
十、位置变量
当执行命令行操作时,第一个字段表示命令名或脚本程序名,其余的字符串参数按照从左到右的顺序依次赋值给位置变量。
$n:n为数字,$0代表命令本身,1~9代表第一个到第九个参数,十以上的参数需要使用大括号表示,比如第十个参数为 ${10}。
十一、预定义变量