泷羽sec- shell编程(8) until循环以及函数基本创建调用 学习笔记
声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页[B站泷羽sec](泷羽sec的个人空间-泷羽sec个人主页-哔哩哔哩视频)
本章课程链接:shell编程(8) until循环以及函数基本创建调用_哔哩哔哩_bilibili
until循环
基本概念
在 Shell 脚本中,until循环是一种与while循环相对应的控制流结构。while循环是在条件为真时执行循环体,而until循环则是在条件为假时执行循环体,直到条件变为真时才停止循环。
语法结构
基本语法如下:
until [ 条件表达式 ]
do循环体(要执行的命令或代码块)
done
其中,[ 条件表达式 ]部分用于判断循环是否结束。这个表达式和while循环中的条件表达式类似,可以使用比较运算符(如-eq(等于)、-ne(不等于)、-gt(大于)、-lt(小于)、-ge(大于等于)、-le(小于等于))来比较数值,也可以使用字符串比较运算符(如=、!=)来比较字符串,还可以包含文件测试运算符(如-e(存在)、-f(普通文件)、-d(目录)等)。do和done之间的部分就是循环体,这里面放置的是每次循环需要执行的命令。
执行流程
当脚本执行到until循环时,首先会对[ 条件表达式 ]进行计算。如果条件表达式的计算结果为假(在 Shell 脚本中,通常返回值为非 0 表示假),那么就会执行do和done之间的循环体代码。在循环体执行完毕后,会再次对[ 条件表达式 ]进行计算,只要结果仍然为假,就会再次执行循环体,如此反复,直到[ 条件表达式 ]的计算结果为真(返回值为 0),此时循环结束,脚本会继续执行done之后的代码。
简单示例
下面是一个简单的示例,用于计算从 1 加到 10 的和:
sum=0
i=1
until [ $i -gt 10 ]
dosum=$((sum + i))i=$((i + 1))
done
echo "从1加到10的和为: $sum"
首先,初始化两个变量sum = 0和i = 1,sum用于存储累加的结果,i作为计数器。
然后进入until循环,条件是[ $i -gt 10 ],即检查i是否大于 10。由于初始i = 1,条件为假,所以执行循环体。
在循环体中,sum=$((sum + i))将当前i的值累加到sum中,i=$((i + 1))将i的值加 1。
第一次循环结束后,sum的值变为 1,i的值变为 2。再次检查条件,仍然为假,继续执行循环体。这样一直循环,直到i的值变为 11,此时条件为真,循环结束。最后通过echo命令输出累加的结果。
函数
基本概念
Shell 函数是一组可以重复使用的命令集合,将一些相关的操作封装在一起,类似于其他编程语言中的函数。它可以提高代码的复用性和可维护性,使脚本的逻辑结构更加清晰。
实例
until循环1
i=0
until [ ! $i -lt 10 ]
do
echo $i
((i++))
done
功能概述
这段 Shell 脚本利用until循环结构实现了从 0 到 9 的整数依次输出的功能。它通过不断地检查循环终止条件,并在条件未满足时执行循环体内的操作来实现计数输出。
代码解析
i = 0部分:
这是对变量i进行初始化的操作,将变量i的值初始化为 0,为后续的循环操作提供起始值。
until [! $i -lt 10 ]部分:
这是until循环的条件判断部分。
在 Shell 中,[ ](也可写成test)用于条件判断。这里的条件表达式是! $i -lt 10,其中:
$i -lt 10是检查变量i的值是否小于 10。正常情况下,until循环是在条件为假时执行循环体,这里通过在前面加!(逻辑非运算符)进行了反转,即当$i -lt 10这个条件不成立(也就是i的值大于等于 10)时,循环才会停止;而当$i -lt 10成立(即i的值小于 10)时,循环会继续执行。
do部分:
它标志着循环体的开始。在until循环结构中,do和与之匹配的done之间的代码段就是每次循环要执行的具体操作内容。
echo $i部分:
这是循环体内部的代码。echo是 Shell 中用于输出信息的命令,在这里它会输出变量i的值。由于在每次循环时,变量i的值会根据循环的执行情况而改变,所以每次循环都会输出一个不同的整数,从 0 开始,依次递增,直到满足循环终止条件(即i的值达到 10)。
((i++))部分:
这是在循环体内部对循环变量i进行更新的操作。使用双括号(( ))进行算术运算,i++表示将变量i的值自增 1。在每次循环体执行完echo $i操作之后,就会执行((i++))来更新变量i的值,以便下一次循环时进行新的条件判断和输出操作。
done部分:
它标志着until循环体的结束。当until循环完成了对满足循环终止条件之前的所有整数的遍历操作,即对每个符合条件的整数都执行了一次循环体中的操作后,程序就会继续执行done之后的代码(如果存在的话)。
case语句
read -p "请输入一个数值:" num
case $num in
1)echo 你输入的数字是1
;;
2)echo 你输入的数字是2
;;
*)echo 你输入的是:其他的内容
;;
esac
整体流程
首先通过read -p "请输入一个数值:" num这行命令,提示用户在终端输入一个数值,用户输入完成后按回车键,输入的内容就会被存储到num变量中。
然后进入case语句进行判断:
如果num的值等于1,就会执行1)后面的代码,也就是输出你输入的数字是1。
如果num的值等于2,则执行2)后面的代码,输出你输入的数字是2。
如果num的值既不是1也不是2,就会执行*)后面的代码,输出你输入的是:其他的内容。
函数1基本
DemoFunc() {
echo "hello world"
}
DemoFunc
代码功能
这段 Shell 脚本代码定义了一个名为DemoFunc的函数,然后调用了这个函数。函数的功能是在被调用时输出字符串"hello world"。
详细解释
函数定义部分:
DemoFunc() {:这是函数定义的开头部分,声明了一个名为DemoFunc的函数,后面跟着一对花括号{},花括号内的内容就是函数体,定义了函数被调用时要执行的具体操作。
echo "hello world":这是函数体内部的唯一一行代码,当函数DemoFunc被调用时,就会执行这行代码,通过echo命令输出字符串"hello world"。
函数调用部分:
DemoFunc:这是对前面定义的DemoFunc函数进行调用的语句。当执行到这一行时,就会跳转到DemoFunc函数的定义处,执行函数体内部的代码,也就是输出"hello world"。
函数2传递参数
DemoFunc() {
echo "hello world"
echo "My name is $1"
}
DemoFunc Darker
代码功能与执行逻辑
这段 Shell 脚本代码定义了一个名为DemoFunc的函数,然后调用了这个函数并传递了一个参数。函数的主要功能是输出一些固定的字符串以及传入的参数对应的信息。
具体解释
函数定义部分:
DemoFunc() {:这是函数定义的起始部分,声明了一个名为DemoFunc的函数,后面紧跟着一对花括号{},花括号内的内容构成了函数体,也就是函数被调用时要执行的具体操作。
echo "hello world":在函数体中,这是第一条输出语句。当函数DemoFunc被调用时,无论是否传入参数,都会首先执行这行代码,通过echo命令输出字符串"hello world"。
echo "My name is $1":这是函数体中的第二条输出语句。在 Shell 函数中,$1用于指代传入函数的第一个参数。所以当函数DemoFunc被调用并传入参数时,这行代码会输出传入的第一个参数相关的信息,格式为My name is加上传入的第一个参数的值。
函数调用部分:
DemoFunc Darker:这是对前面定义的DemoFunc函数进行调用的语句,并且传入了一个参数Darker。当执行到这一行时,程序会跳转到DemoFunc函数的定义处,按照函数体内部的代码逻辑依次执行。首先会输出"hello world",然后由于传入了参数Darker,$1就获取到了这个值,接着会输出My name is Darker。
函数3多函数调用
DemoFunc(){
echo "hello world"
echo "my name is $1,and is $2 years old"
}
DemoFunc xiaoyu 27
代码功能与执行逻辑
这段 Shell 脚本代码定义了一个名为DemoFunc的函数,然后调用该函数并传递了两个参数。函数的主要功能是输出一些固定的字符串以及传入的两个参数对应的信息。
具体解释
函数定义部分:
DemoFunc() {:这是函数定义的起始部分,声明了一个名为DemoFunc的函数,其后跟着一对花括号{},花括号内的内容构成函数体,即函数被调用时要执行的具体操作。
echo "hello world":在函数体中,这是第一条输出语句。无论是否传入参数,当函数DemoFunc被调用时,都会首先执行这行代码,通过echo命令输出字符串"hello world"。
echo "my name is $1,and is $2 years old":这是函数体中的第二条输出语句。在 Shell 函数中,$1用于指代传入函数的第一个参数,$2用于指代传入函数的第二个参数。所以当函数DemoFunc被调用并传入参数时,这行代码会根据传入的参数值输出相应信息,格式为 “我的名字是传入的第一个参数值,并且是传入的第二个参数年龄”。
函数调用部分:
DemoFunc xiaoyu 27:这是对前面定义的DemoFunc函数进行调用的语句,同时传入了两个参数,第一个参数是xiaoyu,第二个参数是27。当执行到这一行时,程序会跳转到DemoFunc函数的定义处,按照函数体内部的代码逻辑依次执行。首先会输出"hello world",然后由于传入了参数xiaoyu作为第一个参数,27作为第二个参数,所以接着会输出my name is xiaoyu,and is 27 years old。
相关文章:
泷羽sec- shell编程(8) until循环以及函数基本创建调用 学习笔记
声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&a…...
Apache Flink从Kafka中消费商品数据,并进行商品分类的数量统计题
使用Apache Flink从Kafka中消费商品数据,并进行商品分类的数量统计是一个典型的流处理任务。以下是一个详细的步骤指南和示例代码,帮助你实现这一功能。 ### 前提条件 1. **安装Flink**:确保你的环境中已经安装了 Apache Flink。 2. **安装…...
Ubuntu 安装 MariaDB
安装 MariaDB具体步骤 1、更新软件包索引: sudo apt update2、安装 MariaDB 服务器: sudo apt install mariadb-server3、启动 MariaDB 服务(如果未自动启动): sudo systemctl start mariadb4、设置 MariaDB 开机启…...
GPT打字机效果—— fetchEventSouce进行sse流式请求
EventStream基本用法 与 WebSocket 不同的是,服务器发送事件是单向的。数据消息只能从服务端到发送到客户端(如用户的浏览器)。这使其成为不需要从客户端往服务器发送消息的情况下的最佳选择。 const evtSource new EventSource(“/api/v1/…...
Leetcode 3373. Maximize the Number of Target Nodes After Connecting Trees II
Leetcode 3373. Maximize the Number of Target Nodes After Connecting Trees II 1. 接替思路2. 代码实现 题目链接:3373. Maximize the Number of Target Nodes After Connecting Trees II 1. 接替思路 这一题和前一题Leetcode 3372其实整体思路上并没有啥太大…...
JS的魔法三角:constructor、prototype与__proto__
在JavaScript中,constructor、prototype和__proto__是与对象创建和继承机制紧密相关的三个概念。理解它们之间的关系对于掌握JavaScript的面向对象编程至关重要。下面将详细介绍这个魔法三角: 1. constructor 定义:constructor是一个函数&am…...
用c语言完成俄罗斯方块小游戏
用c语言完成俄罗斯方块小游戏 这估计是你在编程学习过程中的第一个小游戏开发,怎么说呢,在这里只针对刚学程序设计的学生,就是说刚接触C语言没多久,有一点功底的学生看看,简陋的代码,简陋的实现࿰…...
Leetcode打卡:N皇后
执行结果:通过 题目:51 N皇后 按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n &#…...
位运算在嵌入式系统开发中的应用
目录 一、数据存储与节省 “绝技” 1.1. 传感器数据存储挑战 1.2. 位运算解决方案 1.2.1. 数据整合 1.2.2. 数据提取 1.3. 收益分析 二、硬件控制 “精准操纵术” 2.1. 位运算操控硬件寄存器的实例 2.2. 位运算在硬件控制中的优势 2.3. 电机驱动芯片寄存器控制示例 …...
livekit 服务部署
本地起 1. 拉取生成文件镜像 sudo docker pull livekit/generate 2. 生成配置文件 sudo docker run --rm -v $PWD:/output livekit/generate --local (记住输出信息) 3. 拉取livekit/livekit-server sudo docker pull livekit/livekit-server 4. 开始运行服务 sudo docker run…...
笔记:visual studio2022编译 和 运行 VTK9.4.0
一、下载源码 VTK官网下载对应源码。 Download | VTKhttps://vtk.org/download/ 二、编译动态库(基于Win11 24h) 1. 用VS打开VTK源码的CMakeLists.txt,等待项目配置完成。 生成完毕如图 2.生成动态库,点击全部生成,…...
【Linux | 计网】TCP协议深度解析:从连接管理到流量控制与滑动窗口
目录 前言: 1、三次握手和四次挥手的联系: 为什么挥手必须要将ACK和FIN分开呢? 2.理解 CLOSE_WAIT 状态 CLOSE_WAIT状态的特点 3.FIN_WAIT状态讲解 3.1、FIN_WAIT_1状态 3.2、FIN_WAIT_2状态 3.3、FIN_WAIT状态的作用与意义 4.理解…...
Qt Sensors 传感器控制介绍篇
文章目录 Qt Sensors 模块介绍前言 什么是 Qt Sensors?主要特点: 支持的传感器类型Qt Sensors 的核心组件应用场景优势总结 Qt Sensors 模块介绍 前言 随着现代硬件设备的不断发展,传感器已成为许多设备(如智能手机、平板电脑和…...
探索3D世界:使用 lib3ds 读取和解析 3DS 文件
在3D图形开发中,读取和解析3DS文件是创建和渲染3D场景的第一步。3DS(3D Studio)文件格式是一种广泛使用的3D模型文件格式,它包含了多种类型的数据,用于描述3D场景中的物体、材质、相机、灯光和动画等。lib3ds 是一个开…...
【开源免费】基于SpringBoot+Vue.JS服装生产管理系统(JAVA毕业设计)
博主说明:本文项目编号 T 066 ,文末自助获取源码 \color{red}{T066,文末自助获取源码} T066,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…...
计算机技术:冯·诺伊曼架构
冯诺伊曼架构(Von Neumann Architecture)是由著名数学家和计算机科学家约翰冯诺伊曼(John von Neumann)在20世纪40年代提出的一种计算机设计模型。它奠定了现代通用计算机设计的基础。 1. 核心思想 冯诺伊曼架构的核心思想是存储…...
在Window10或11系统中同时安装 JDK8 和 JDK11
在Window10或11系统中同时安装 JDK8 和 JDK11 最近写项目,之前的项目是用Java8环境开发的,在二次迭代中,但是新开发的项目采用Java11环境来开发,所以需要同时安装JDK8和JDK11环境,但是两个环境是不能同时使用的&#…...
Hbase2.2.7集群部署
环境说明 准备三台服务器,分别为:bigdata141(作为Hbase主节点)、bigdata142、bigdata143确保hadoop和zookeeper集群都先启动好我这边的hadoop版本为3.2.0,zookeeper版本为3.5.8 下载安装包 下载链接:In…...
Java学习,数据结构
Java 提供了丰富的数据结构来处理和组织数据,Java的 java.util 包中提供了许多这些数据结构的实现,可以根据需要选择合适的类。 List(列表) ArrayList:基于动态数组的数据结构,允许包含重复元素和 null。 …...
微众银行前端面试题及参考答案
使用的协议是 HTTP 还是 HTTPS,为什么没用 HTTPS? 在前端开发中,有些网站使用 HTTP 协议,有些使用 HTTPS 协议。 使用 HTTP 协议的情况可能是因为网站对安全性的要求不是极高,或者处于开发的早期阶段,还没有…...
spark同步mysql数据到sqlserver
使用Apache Spark将数据从MySQL同步到SQL Server是一个常见的ETL(Extract, Transform, Load)任务。这里提供一个基本的步骤指南,以及一些代码示例来帮助你完成这项工作。 ### 前提条件 1. **安装Spark**:确保你的环境中已经安装了…...
使用 useMemo 和 React.memo 优化 React 组件渲染
在 React 中,性能优化是一个重要的主题,特别是在复杂的组件树中。本文将演示如何在同一个父组件中使用 useMemo 和 React.memo 来优化子组件的渲染。 1. 组件结构 创建一个父组件,包含两个子组件: MemoChild:使用 R…...
像素流送api ue多人访问需要什么显卡服务器
关于像素流送UE推流,在之前的文章里其实小芹和大家聊过很多,不过今天偶然搜索发现还是有很多小伙伴,在搜索像素流送相关的问题,搜索引擎给的提示有这些。当然这些都是比较短的词汇,可能每个人真正遇到的问题和想获取的…...
Bert+CRF的NER实战
CRF(条件随机场-Conditional Random Field) 原始本文:我在北京吃炸酱面 标注示例: 我O在O北B-PLA京I-PLA吃O炸B-FOOD酱I-FOOD面I-FOOD CRF: 目的:提出一些不可能出现的预测组合(例如I-PLA不能…...
python学习笔记8-函数2
参数传递 传不可变对象 & 传可变对象 def func(b):print(id(a), a) #140737041872600 234print(id(b), b) #140737041872600 234a 234 func(a)def func(b):print(id(a), a) #1413554098560 [343]print(id(b), b) #1413554098560 [343]a [343] func(a)def func(b):b.appe…...
【linux学习指南】详解Linux进程信号保存
文章目录 📝保存信号🌠 信号其他相关常⻅概念🌉在内核中的表⽰ 🌠 sigset_t🌠信号集操作函数🌉sigprocmask🌉sigpending 🚩总结 📝保存信号 🌠 信号其他相关常…...
Postman设置接口关联,实现参数化
🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 postman设置接口关联 在实际的接口测试中,后一个接口经常需要用到前一个接口返回的结果, 从而让后一个接口能正常执行,这…...
ORACLE之DBA常用数据库查询
数据库信息 数据库概要select a.name "DB Name", e.global_name "Global Name", c.host_name "Host Name", c.instance_name "Instance Name" , DECODE(c.logins,RESTRICTED,YES,NO) "Restricted Mo…...
C++之C++11新特性(三)--- 智能指针
目录 一、智能指针 1.1 为什么需要智能指针 1.2 内存泄漏 1.2.1 内存泄漏的基本概念 1.2.2 内存泄漏的分类 1.2.3 如何避免内存泄漏 1.3 智能指针的使用及其原理 1.3.1 RAII 1.3.2 智能指针的基本原理 1.3.3 auto_ptr 1.3.4 unique_ptr 1.3.5 shared_ptr 1.3.6 sha…...
12 设计模式之工厂方法模式
一、什么是工厂方法模式? 1.定义 在软件开发中,设计模式 是解决常见软件设计问题的最佳实践。而 工厂方法模式(Factory Method Pattern) 作为创建型设计模式之一,常常被用来解决对象创建问题。它通过将对象的创建交给…...
Python 自动化办公的 10 大脚本
大家好,我是你们的 Python 讲师!今天我们将讨论 10 个实用的 Python 自动化办公脚本。这些脚本可以帮助你简化日常工作,提高效率。无论是处理 Excel 文件、发送邮件,还是自动化网页操作,Python 都能派上用场。 1. 批量…...
十一、快速入门go语言之接口和反射
文章目录 接口:one: 接口基础:two: 接口类型断言和空接口:star2: 空接口实现存储不同数据类型的切片/数组:star2: 复制切片到空接口切片:star2: 类型断言 反射 📅 2024年5月9日 📦 使用版本为1.21.5 接口 十、Java类的封装和继承、多态 - 七点半的菜市…...
Python中字符串和正则表达式
Python中字符串和正则表达式 在Python编程中,字符串是最常用的数据类型之一。字符串用于表示文本数据,而正则表达式则是一种强大的工具,用于处理和匹配字符串中的模式。本文将介绍Python中的字符串操作、字符串格式化以及如何使用正则表达式…...
力扣刷题TOP101:8.BM10 两个链表的第一个公共结点
目录: 目的 思路 复杂度 记忆秘诀 python代码 目的 两个无环的单向链表,它们的第一个公共结点{{6,7}。 思路 这个任务是找到两个链表的第一个公共结点。可以看作两个心机boy偷偷补课翻车事件。平时嘴上说自己在家玩游戏,实际上背地里都偷…...
⽂件操作详解
⽬录 一 文件操作的引入 1 为什么使⽤⽂件? 2 什么是⽂件? 3 文件分类(1 从⽂件功能的⻆度来分类:程序⽂件/数据⽂件 2根据数据的组织形式:为⽂本⽂件/⼆进制⽂件) 二 ⽂件的打开和关闭 1 …...
UR开始打中国牌,重磅发布国产化协作机器人UR7e 和 UR12e
近日,优傲(UR)机器人公司立足中国市场需求,重磅推出UR7e和UR12e 两款本地化协作机器人。它们延续优傲(UR)一以贯之的高品质与性能特质,着重优化负载自重比,且在价格层面具竞争力&…...
PostgreSQL实现透视表查询
PostgreSQL 8.3版本发布时,引入了一个名为tablefunc的新扩展。这个扩展提供了一组非常有趣的函数。其中之一是交叉表函数,用于创建数据透视表。这就是我们将在本文中讨论的内容。 需求说明 解释此函数如何工作的最简单方法是使用带有数据透视表的示例…...
C#里怎么样使用Array.BinarySearch函数?
C#里怎么样使用Array.BinarySearch函数? 因为二分算法如此重要,所以要多加练习。 但是它的返回值,也有三种状态,导致很多人使用它的时候, 也感觉到迷惑的。 在这里的例子演示了三种返回值的使用: /** C# Program to Search an element with Array Indices*/ using …...
量化交易系统开发-实时行情自动化交易-8.5.VNPY平台
19年创业做过一年的量化交易但没有成功,作为交易系统的开发人员积累了一些经验,最近想重新研究交易系统,一边整理一边写出来一些思考供大家参考,也希望跟做量化的朋友有更多的交流和合作。 接下来会对于VNPY平台介绍。 VN.PY 是…...
分治算法中的主定理及其应用
引言 学习递归算法的时候,找到了用来计算算法复杂度的主定理。问大语言模型,发现回答的主定理描述有所不同。本文比较了两个不同版本中表述的差异。并给出一些例子用来计算分治递归类算法的复杂度。 主定理的不同版本 版本1 在《算法导论》第三版第四…...
前端的面试题
1.常用的块与行属性内标签有哪些?有什么特征? 块标签:div、h1~h6、ul、li、table、p、br、form。 特征:独占一行,换行显示,可以设置宽高,可以嵌套块和行 行标签:span、a、img、text…...
vue实现excel导出导入
文章目录 安装xlsx依赖和file-saver依赖Excel导出使用element-ui的el-table展示数据定义导出按钮将数据导出 excel导入定义文件导入显示框定义导入按钮解析选择的文件进行导入 安装xlsx依赖和file-saver依赖 npm install xlsx -S npm install file-saver -SExcel导出 使用ele…...
婚纱摄影管理系统|Java|SSM|VUE| 前后端分离
【重要1⃣️】前后端源码万字文档部署文档 【重要2⃣️】正版源码有问题包售后 【重要3⃣️】虚拟可复制品不支持退换货 【重要3⃣️】虚拟可复制品不支持退换货 【重要3⃣️】虚拟可复制品不支持退换货 【包含内容】 【一】项目提供非常完整的源码注释 【二】相关技术栈文档 【…...
对拍详细使用方法
对拍的作用 对于我们在学校OJ,cf,牛客…各种只提供少量测试数据的题目,常常交上代码常常超时,能写出正确的暴力代码而题目要求的时间复杂度更低。然而这时你写出了能通过样例且时间复杂度更低的代码,但交上去就是错误…...
Flume 与 Kafka 整合实战
目录 一、Kafka 作为 Source【数据进入到kafka中,抽取出来】 (一)环境准备与配置文件创建 (二)创建主题 (三)测试步骤 二、Kafka 作为 Sink数据从别的地方抽取到kafka里面】 (…...
Web开发技术栈选择指南
互联网时代的蓬勃发展,让越来越多人投身软件开发领域。面对前端和后端的选择,很多初学者往往陷入迷茫。让我们一起深入了解这两个领域的特点,帮助你做出最适合自己的选择。 在互联网发展的早期,前端开发主要负责页面布局和简单的…...
社群赋能电商:小程序 AI 智能名片与 S2B2C 商城系统的整合与突破
摘要:本文聚焦于社群在电商领域日益凸显的关键地位,深入探讨在社群粉丝经济迅猛发展背景下,小程序 AI 智能名片与 S2B2C 商城系统如何与社群深度融合,助力电商突破传统运营局限,挖掘新增长点。通过分析社群对电商的价值…...
C++11 http服务端和客户端库cpp-httplib
C11 http服务端和客户端库cpp-httplib 环境: http: yhirose/cpp-httplib v0.18.1 json: nlohmann/json v3.11.31. 简介 cpp-httplib 是一个轻量级且易于使用的 C11 HTTP 库,由 yhirose 开发和维护,开源协议为MIT。它支持 HTTP/HTTPS 协议&…...
spring-boot自定义ApplicationListener及源码分析
ApplicationListener是spring boot应用启动时的事件监听器。监听的事件有(包括但不限于): (1)接下来,我们先通过一个例子实现自定义ApplicationListener: 监听器需要实现ApplicationListener<…...
打造双层环形图:基础与高级渐变效果的应用
在数据可视化领域,环形图因其独特的展示方式而广受欢迎。今天,我们将通过ECharts库来创建一个具有双层渐变效果的高级环形图。本文将详细介绍如何实现这种视觉效果。 1. 环形图基础 首先,我们需要了解环形图的基本构成。环形图由内外两个圆…...