一、前言
1.1编程的三种处理逻辑
顺序执行:程序按从上到下顺序执行
选择执行:程序执行过程中,根据条件的不同,进行选择不同分支继续执行
循环执行:程序执行过程中需要重复执行多次某段语句(已知次数 已知条件 死循环)
二、shell脚本基础
2.1shell的作用
Linux 系统中的 Shell 是一个特殊的应用程序,它介于操作系统内核与用户之间,充当 了一个“命令解释器”的角色,负责接收用户输入的操作指令(命令)并进行解释,将需要执 行的操作传递给内核执行,并输出执行结果。
查看本机的shell信息:
linux中常见的shell :
bash:基于gun的框架下发展的shell
csh:类似c语言的shell
tcsh:整合了csh提供了更多功能
sh:已经被bash替换
nologin:让用户无法登录
2.2shell脚本的构成以及概念
2.2.1shell脚本的概念
将命令按顺序一一列出,最后自动执行
执行需要权限,也可以直接使用路径
脚本其实不复杂,通用脚本环境改变后依然可以使用的脚本
2.2.2shell脚本的构成
1.注释器 脚本使用什么语言写的
2.注释 解释语句的含义
3.执行语句
具体介绍:
1.解释器:第一行开头“#!/bin/bash”,表示此行以下的代码语句是通过/bin/bash程序来解释执行。#!/bin/bash为默认的解释器还有其他类型的解释器。比如:#!/bin/python,#!/bin/expect
2.注释信息:以#开头的语句表示为注释信息,比如:# 注 释
3.可执行语句:比如echo命令用于输出“ ”之间的字符串
2.3脚本执行逻辑以及执行方式
2.3.1脚本执行逻辑
1.顺序执行:程序按从上到下顺序执行
2.选择执行:程序执行过程中,根据条件的不同,进行选择不同分支继续执行
3.循环执行:程序执行过程中需要重复执行多次某段语句
2.3.2脚本执行方式
指定路径的命令,要求文件必须有 x(可执行)权限
指定shell来解释脚本,不要求文件必须有 x (可执行)权限
source 与 . 脚本路径执行shell脚本(不建议使用),会影响当前环境
2.3.3脚本错误调试
脚本错误种类
- 命令错误:命令出错不会影响接下来的命令继续
- 语法错误:会影响接下来的命令继续
- 逻辑错误:只能自己去筛查代码的正确
检查脚本错误
检查语法错误:bash -n 脚本名称 (不在当前目录下加绝对路径)
检查逻辑错误:bash -x 脚本名称 (不在当前目录下加绝对路径)
三、重定向和管道符
3.1交互式硬件设备标准输出输入
类型 | 设备文件 | 文件描述编号 | 默认设备 |
标准输入 | /dev/stdin | 0 | 键盘 |
标准输出 | /dev/stdout | 1 | 显示器 |
标准错误输出 | /dev/stderr | 2 | 显示器 |
3.2重定向具体操作
重定向就是:不通过标准输出到屏幕上,输出到你指定的位置
类型 | 操作符 | 用途 |
重定向输入 | < | 从指定的文件读取数据,而不是从键盘输入 |
重定向输出 | > | 将输出结果保存到指定的文件(覆盖原有内容) |
重定向输出 | >> | 将输出结果换行添加在文件尾部 |
重定向错误输出 | 2> | 将错误信息保存到指定的文件(覆盖原有内容) |
重定向错误输出 | 2>> | 将错误信息追加到指定的文件中 |
混合输出 | &> | 将标准输出、标准错误的内容保存到同一个文件中 |