目录
1.程序编程风格
面向过程语言:开发的时候需要一步一步执行
面向对象语言:开发的时候将任务当成一个整体
2.shell脚本
shell:是一个命令解释器,将人类使用的高级语言翻译成二进制,也可以将二进制翻译成人类使用的高级语言
shell脚本用途
- 将简单的命令组合完成复杂的工作,自动化执行命令,提高工作效率
- 减少手工命令的重复输入
- 将软件或应用的安装及配置实现标准化
shell应用场景
1.重复性操作
2.批量操作
3.定时任务处理
shell脚本构成
- 1. 脚本声明:表示此行以下的代码语句是通过/bin/bash程序来解释执行
- 2.注释信息:以#开头的语句表示为注释信息
- 3.可执行语句
3.执行脚本
脚本执行逻辑
顺序执行:程序按从上到下顺序执行
选择执行:程序执行过程中,根据条件的不同,进行选择不同分支继续执行
循环执行:程序执行过程中需要重复执行多次某段语句
执行方式
1.直接调用shell解释器加上脚本名字,bash+脚本名,不需要加上权限
2.路径执行脚本,需要权限
3.source(.)加上脚本名,会直接修改当前bash环境
4.如果想要脚本全局运行(补全),需要将脚本放入echo$PATH路径下(shell脚本的本质是命令的集合,是一个程序)
4.脚本错误调试
1.命令错误:不会影响接下来的命令执行,但本条命令不执行
2.语法错误:会影响脚本无法正常运行
3.逻辑错误:只能自己去筛查
查代码的正确
bash -x 脚本名 //检查逻辑错误
bash -n 脚本名 //检查语法错误
set -e //一旦出错立即停止
set -u //变量不存在不让执行
5.重定向
重定向:改变电脑数据的输出方向(默认电脑数据的输出方向是屏幕)
标准输出:发一条指令给电脑操作,电脑会回复结果给你,结果一定显示在屏幕上
错误输出:发一条指令给电脑操作,电脑没有正确回复
标准输入:通过键盘,鼠标,扫描仪等设备输入给电脑的指令
6.管道符
- 管道符:|
将左侧的命令输出结果,作为右侧命令输入的参数
7.变量
常见shell变量类型
- 自定义变量:由用户自己定义修改和使用
- 预定义变量:$?,$$,$^,$@,shell程序中自带的
- 环境变量:由系统维护,用于设置工作环境,env查看所有变量
- 只读变量:只可以读取不可以更改
- 位置变量:通过命令行给脚本船体参数
变量格式
- 设置变量:变量名=变量值
- 调用变量:echo $变量名
- 删除变量:unset 变量名
- 重新定义变量:变量名=变量值
- 追加变量值:变量名+=变量值
8.read -p
- 从键盘输入的内容变成变量
例
脚本运行分区格式
#!/bin/bash
read -p "请输入你要分区的设备:" disk
read -p "请输入你要的分区大小:" num
echo -e "n\n\n\n\n${num}\nw\n "|fdisk ${disk}
9.变量的作用范围
- 默认情况下,新定义的变量只在当前的shell环境中有效,因此称为局部变量,当进入子程序或新的shell环境中,局部变量将无法再起作用。
- 可以通过内部命令export将指定的变量为全局变量,使用户定义的变量在所子shell环境中可以继续使用
格式:
export 变量名
export 变量名=变量值
pstree -p |grep bash //查看shell的环境
10.整数的运算
- 格式: expr 变量1 运算符 变量2 [运算符 变量3]
运算符:
- 加法 :+
- 减法 :-
- 乘法 :\ *
- 除法 :/
- 取余 (取模):%
随机数生成器变量:
11. 环境变量
env:查看所有环境变量
12.只读变量
变量值不允许修改,无法使用unset删除