05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串

  1. 脚本定义与分类
    在这里插入图片描述
    1.105 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第1张图片
    1.2
    在这里插入图片描述
    在这里插入图片描述
    1.3
    编程语言类型:
    强类型:变量需要申明是字符型还是数字型还是其他,例:字符串1跟数字型2相加会报错
    弱类型:可以不用申明是字符串或是数字型,例;字符串1跟数字型2相加可正常得3
    shell 属于弱类型并且不支持浮点数
    1.4

    编译器:所有的程序代码一起都变异成二进制
    C、C++、java
    解释器:解释之前先快速检查一遍语法,没有问题然后一条条命令开始解释
    shell、perl、python

  2. 变量:命名的内存空间
    在这里插入图片描述
    05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第2张图片
    2.1 类型
    环境变量(export VARNAME=VALUE、也可以先定义再导出):对当前shell以及子shell有效其他shell无效
    本地变量(set VARNAME=VALUE 也可直接赋值):只在当前shell中使用,子shell、其他shell都没效
    局部变量(local VARNAME=VALUE): 只在当前代码段有效
    位置变量
    特殊变量
    在这里插入图片描述
    $ 0 脚本本身
    shift [n] :配合位置变量,剔除n个参数
    在这里插入图片描述
    注意:函数可以修改全局变量,需要重新赋值local(局部变量)才能实现同名不同值
    例:
    05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第3张图片
    在这里插入图片描述

2.2 注意:引用变量:${VARNAME} ,括号可以省略,但是后面有参数混淆时要加上
单引号不可以引用变量,双引号才可以
export、unset 都不需要加 $ 不然撤销的不是变量而是变量的值
在这里插入图片描述
2.3 本地变量:
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第4张图片
2.4 环境变量:
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第5张图片
在这里插入图片描述
2.5 只读变量:变量定义完后不允许再改动也不能被销毁只能等到shell进程终止
在这里插入图片描述
3. 变量 bash配置文件
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第6张图片
3.1 登录方式分类
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第7张图片
3.2 bash配置文件按功能分类分类
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第8张图片
3.3
在这里插入图片描述
3.4 例:永久定义别名
vim ~/.bashrc 添加
在这里插入图片描述
修改配置文件不会立即生效需要重新读取或者重新登录
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第9张图片

  1. 脚本运行
    #!/bin/bash :我们写完的脚本是系统不能识别的ASIIC码,必须注明要用的解释器路径来调用解释器执行

脚本在执行时需要他的路径,如果没有写路径默认去找$PATH,还要有执行权限
也可以前面直接加bash或其他解释器,因而脚本就作为解释器的参数可以不需要执行权限
但是 独立自动运行时还需要执行权限
在这里插入图片描述

条件判断

条件判断-a到-z的含义
1.
在这里插入图片描述
2.
在这里插入图片描述
3.
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第10张图片
3.1
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第11张图片
在这里插入图片描述
3.2 字符串比较
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
4. 1 逻辑与 &&
逻辑或 ||
逻辑否 !
4.2
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第12张图片
4.3
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第13张图片
例:
在这里插入图片描述
在这里插入图片描述
注意|| 后面不能加多个&&,多个&&后面可以加||
演示:
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第14张图片
5.
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第15张图片
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第16张图片
bash -n +脚本 测试语法错误
bash -x +脚本 显示脚本执行的每一步
exit +n 直接退出脚本和设置状态码n
如果想要返回值就反撇号` 如果想要执行状态就不加
在这里插入图片描述

如果想要一个命令返回状态就不能赋予变量名
在这里插入图片描述
6.算数 运算
查看算术运算符号 help let
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第17张图片
bc
scale 保留两位精度
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第18张图片

for 循环

05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第19张图片
1.1
变量只能是字符串不能进行运算所以要做声明
let
declare 声明
-i SUM=0 整数
-x 环境变量
1.2 赋值表达式:变量等于变量自身加|减|乘|除一个变量
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第20张图片

05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第21张图片
2.如何生成列表
{1…100}
seq:三个数分别是 [起始数]、[步进长度]、结束数 要用反撇号
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第22张图片
例子
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第23张图片
向所有用户问好
在这里插入图片描述
如果是–add 添加十个不存在用户,如果是–del 删除十个已存在用户
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第24张图片
如果位置变量给的是user1,user,user3 可以用sed替换空格
在这里插入图片描述
随机10个数取最大值最小值
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第25张图片
3.for的另一种风格用法,近似于C语言
三个表达式分别表示:
expr1:指定初始条件、初始变量的值
expr2:判定什么时候退出循环
expr3:修正第一个变量的值

在这里插入图片描述
例:
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第26张图片
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第27张图片
例2:
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第28张图片

05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第29张图片

case语句

  1. 结构
    05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第30张图片
    补充:
    05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第31张图片


05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第32张图片
例参数可以带多个选项可以给多次用法
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第33张图片
接上图
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第34张图片
例:
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第35张图片
例:
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第36张图片

05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第37张图片
例:
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第38张图片
接上
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第39张图片

while循环

1.适用于循环次数未知的场景,但必须有退出循环条件避免进入死循环
在这里插入图片描述
2.语法:CONDITION 进入下一次循环条件
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第40张图片
例1:
100以内的和
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第41张图片
例2
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第42张图片
例3
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第43张图片
例4
在这里插入图片描述
例4:
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第44张图片
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第45张图片
while特殊用法:
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第46张图片

until循环

1.与while用法相反
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第47张图片

05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第48张图片
发现hadoop登录就退出循环并echo
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第49张图片
对以上进行优化
当引用一个状态返回值时可以直接当做进入循环的条件
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第50张图片

05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第51张图片

函数

05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第52张图片
return: 显示状态返回值(如果需要函数的状态返回值,默认最后一个命令的状态通常不符合要求),函数任何时候遇到return都会终止此函数,不会执行后面函数,0为成功非 1-255为失败
例1:
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第53张图片
调用函数自身命令 用fact,递归调用必须要有中指终止条件05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第54张图片
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第55张图片

补充

break与continue
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第56张图片
例:
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第57张图片
例2:
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第58张图片
优化以上脚本
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第59张图片

05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第60张图片

数组/字符串

05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第61张图片
例1.
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第62张图片
例2
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第63张图片
2.
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第64张图片
3.
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第65张图片
4.
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第66张图片
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第67张图片
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第68张图片
05 bash脚本编程 变量 bash配置文件 if条件判断 for循环 case语句 while循环 until循环 函数 数组/字符串_第69张图片

你可能感兴趣的:(学习笔记,脚本)