Shell脚本
- 介于操作系统与用户之间,充当 “命令解释器” 的角色
- 通过 /etc/shells 文件可以了解系统支持的shell脚本的种类
- 其中 /bin/bash 是默认shell脚本
什么是Shell?
简单来讲,只要将平时所用的命令按顺序保存到一个文本文件,然后添加可执行权限,这个文件就成为了一个shell脚本了
例如:
添加可执行权限
直接运行脚本
当然一个合格的shell脚本中应该遵循标准的脚本结构,能够输出友好的提示信息,让人更加容易读懂
运行shell脚本的方式:
./local.sh !必须由x权限
sh local.sh
source local.sh
管道
管道操作为不同命令之间提供了以一种机制
位于管道左侧的命令输出结果
将作为右侧命令的输入处理对象
基本格式如下
cmd1 命令 1 | cmd2 命令 2 | cmd3 命令 3
例如,需要提取跟分区 ‘’/’’ 的磁盘使用率信息,可以执行一下操作,其中需要用到df,grep,awk命令
重定向
- 标准输入:默认的设备键盘,文件编号0
- 标准输出:默认的设备显示器,文件编号1
- 标准错误:默认的设备显示器,文件编号2
文件分别位于
- /dev/stdin
- /dev/stdout
- /dev/stderr
什么是重定向?
在Linux系统维护中,可以改变输入,输出内容的方向,而不使用默认的标准输入,输出设备,这种操作称为 “重定向”
输入 < 从指定文件中读取数据
输出 > 将输出结果保存在指定文件(覆盖)
输出 >> 将输出结果追加在指定文件(追加)
错误输出 2> 将错误信息保存在指定文件(覆盖)
错误输出 2>> 将错误信息追加在指定文件(追加)
混合输出 &> 将标准输出,标准错误一起保存在指定文件
标准输入例如
需要用 --stdin来识别标准输入
标准输出例如
错误重定向例如
shell脚本变量
作用
- shell变量用来存放系统和用户需要使用的特定参数
常见的变量类型
- 自定义变量:由用户自己定义,修改和使用
- 环境变量:由系统维护,用于设置工作环境
- 预定义变量:Bash中内置的变量,不能直接更改
- 位置变量:通过命令行给程序传递参数
定义变量
Product=weixin
Version=6.0
查看引用变量值
echo $Product
Weixin
echo $Product $Version
weixin 6.0
赋值的特殊操作
-
双引号 "
允许通过引用带$变量的值qq="qq 5.0" echo $qq qq 5.0
-
单引号
任何字符均作为普通字符看待qq='qq $Version' echo $qq qq $Version
-
反撇号
命令替换,提取命令输出的结果dd=`ls -lh /boot/` echo $dd ..............ls -lh /boot/ 结果
read命令 和 export命令
read 变量名
全局变量
export 变量名
export 变量名=变量值
数值变量的运算
expr 变量1 运算符 变量2
运算符号
-
* 乘法
-
/ 除法
-
% 取余数
X=5 Y=4 expr $X + $Y 9 expr $X + $Y 20
环境变量
常见的环境变量
env 可以查看
预定义变量
常用的几个预定义含义
- $# 表示命令行中位置参数的个数
- $* 表示所有位置参数的内容
- $? 表示前一条命令执行后的返回状态
- $0 表示当前执行的脚本名称