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

  1. 脚本定义与分类
    在这里插入图片描述
    1.1在这里插入图片描述
    1.2
    在这里插入图片描述
    在这里插入图片描述
    1.3
    编程语言类型:
    强类型:变量需要申明是字符型还是数字型还是其他,例:字符串1跟数字型2相加会报错
    弱类型:可以不用申明是字符串或是数字型,例;字符串1跟数字型2相加可正常得3
    shell 属于弱类型并且不支持浮点数
    1.4

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

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

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

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

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

条件判断

条件判断-a到-z的含义
1.
在这里插入图片描述
2.
在这里插入图片描述
3.
在这里插入图片描述
3.1
在这里插入图片描述
在这里插入图片描述
3.2 字符串比较
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
4. 1 逻辑与 &&
逻辑或 ||
逻辑否 !
4.2
在这里插入图片描述
4.3
在这里插入图片描述
例:
在这里插入图片描述
在这里插入图片描述
注意|| 后面不能加多个&&,多个&&后面可以加||
演示:
在这里插入图片描述
5.
在这里插入图片描述
在这里插入图片描述
bash -n +脚本 测试语法错误
bash -x +脚本 显示脚本执行的每一步
exit +n 直接退出脚本和设置状态码n
如果想要返回值就反撇号` 如果想要执行状态就不加
在这里插入图片描述

如果想要一个命令返回状态就不能赋予变量名
在这里插入图片描述
6.算数 运算
查看算术运算符号 help let
在这里插入图片描述
bc
scale 保留两位精度
在这里插入图片描述

for 循环

在这里插入图片描述
1.1
变量只能是字符串不能进行运算所以要做声明
let
declare 声明
-i SUM=0 整数
-x 环境变量
1.2 赋值表达式:变量等于变量自身加|减|乘|除一个变量
在这里插入图片描述

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

在这里插入图片描述
例:
在这里插入图片描述
在这里插入图片描述
例2:
在这里插入图片描述

在这里插入图片描述

case语句

  1. 结构
    在这里插入图片描述
    补充:
    在这里插入图片描述


在这里插入图片描述
例参数可以带多个选项可以给多次用法

接上图
在这里插入图片描述
例:
在这里插入图片描述
例:
在这里插入图片描述

在这里插入图片描述
例:
在这里插入图片描述
接上
在这里插入图片描述

while循环

1.适用于循环次数未知的场景,但必须有退出循环条件避免进入死循环
在这里插入图片描述
2.语法:CONDITION 进入下一次循环条件
在这里插入图片描述
例1:
100以内的和
在这里插入图片描述
例2
在这里插入图片描述
例3
在这里插入图片描述
例4
在这里插入图片描述
例4:
在这里插入图片描述
在这里插入图片描述
while特殊用法:
在这里插入图片描述

until循环

1.与while用法相反
在这里插入图片描述

在这里插入图片描述
发现hadoop登录就退出循环并echo
在这里插入图片描述
对以上进行优化
当引用一个状态返回值时可以直接当做进入循环的条件
在这里插入图片描述

在这里插入图片描述

函数

在这里插入图片描述
return: 显示状态返回值(如果需要函数的状态返回值,默认最后一个命令的状态通常不符合要求),函数任何时候遇到return都会终止此函数,不会执行后面函数,0为成功非 1-255为失败,然后执行函数之外往后的代码
例1:
在这里插入图片描述
调用函数自身命令 用fact,递归调用必须要有中指终止条件在这里插入图片描述
在这里插入图片描述

补充

break与continue
在这里插入图片描述
例:
在这里插入图片描述
例2:
在这里插入图片描述
优化以上脚本
在这里插入图片描述

在这里插入图片描述

数组/字符串

在这里插入图片描述
例1.
在这里插入图片描述
例2
在这里插入图片描述
2.
在这里插入图片描述
3.
在这里插入图片描述
4.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值