一、shell脚本基础
1.1shell的作用
(1)作用
Linux 系统中的Shell是一个特殊的应用程序,它介于操作系统内核与用户之间,充当了一个“命令解释器”的角色,负责接收用户输入的操作指令(命令)并进行解释,将需要执行的操作传递给内核执行,并输出执行结果。常见的 Shell 解释器程序有很多种,使用不同的 Shell时,其内部指令、命令行提示符等方面会存在一些区别。通过/etc/shells文件可以了解当前系统所支持的 Shell 脚本种类。
(2)linux中常见的shell
- bash:基于gun的框架下发展的shell
- csh:类似c语言的shell
- tcsh:整合了csh提供了更多功能
- sh:已经被bash替换
- nologin:让用户无法登录
- bash(/bin/bash):是目前大多数Linux 版本采用的默认shell
1.2什么是shell脚本及其架构
(1)什么是shell脚本
- 就是将命令按顺序一一列出,最后自动执行
- 执行需要权限,也可以直接使用绝对路径
- 脚本其实不复杂,通用脚本环境改变后依然可以使用的脚本
(2)shell脚本的构成
- 脚本申明(解释器):第一行开头“#!/bin/bash”,表示此行以下的代码语句是通过/bin/bash程序来解释执行。#!/bin/bash为默认的解释器还有其他类型的解释器,#!/bin/python,#!/bin/expect
- 注释信息:以#开头的语句表示为注释信息
- 可执行语句:比如echo命令用于输出“ ”之间的字符串
1.3脚本执行逻辑及执行方式
(1)脚本执行逻辑
- 顺序执行:程序按从上到下顺序执行
- 选择执行:程序执行过程中,根据条件的不同,进行选择不同分支继续执行
- 循环执行:程序执行过程中需要重复执行多次某段语句
(2)执行方式
- 指定路径去执行文件(需要有执行权限)
- 指定解释器去执行(不需要权限)
1.4脚本错误调试
脚本错误常见的有三种区别
- 语法错误,会导致后续的命令不继续执行,可以用bash -n 检查错误,提示的出错行数不一定是准确的
- 命令错误,默认后续的命令还会继续执行,用bash -n 无法检查出来 ,可以使用 bash -x 进行观察
- 逻辑错误:只能使用 bash -x 进行
二、重定向与管道符
2.1重定向
(1)交互式硬件设备
标准输入:从该设备接收用户输入的数据
标准输出:通过该设备向用户输出数据
标准错误:通过该设备报告执行出错信息
(2)重定向的意思就是 ,不通过标准输出到屏幕上,输出到你指定的位置
2.2管道符
管道符(”|“):将左侧的命令输出结果,作为右侧命令的输入(处理对象)可以叠加使用