当前位置: 首页 > news >正文

shell编程之函数与数组

目录

shell函数

函数的用法

俩个数求和

系统资源监控并报警函数

函数变量的作用范围

函数的参数

递归函数

shell数组

获取数组的长度

读取某下的标赋值

数组遍历

数组切片

数组替换

数组删除

shell脚步调试


shell函数

函数的用法

Shell函数可用于存放一系列的指令。在Shell脚本执行的过过程中,函数被置于内存中,每次调用
函数时不需要从硬盘读取,因此运行的速度比较快。在Shell编程中函数并非是必须的元素,但使用函
数可以对程序进行更好的组织。将一些相对独立的代码变成函数女,可以提高程序可读性与重用性,避免编写大量重复代码。

Shell函数定义的方法如下所示:

[function]函数名() {
命令序列
[return x]
}

 "function"关键字表示定义一个函数,可以省略;
"{"符号表示函数执行命令的入口,该符号可以与函数名同行t也可以在函数名下一行的句首;
"}"符号表示函数体结束,两个大括号之间{}是函数体;
"命令序列"部分可以是任意的Shell命令,也可以调用其他函数
"return"表示退出函数返回一个退出值,通过返回值判断执行是否成功,也可以使用exit终
止整个Shell脚本。

俩个数求和

使用Shell脚本实现两个数相加求和,通过定义函数的方式来完成。sum函数内部通过read命接收用户分别输入的两个数,然后做加法运算,最后通过调用函数的方式来输出两个数的和。

[root@localhost ~]# vim sum. sh
#!/bin/bash
sum() {
echo"请输入第一个数:"
read num1
if![[[$num1 =~ ^[0-9]+$ ]];
then
echo"输入的第一个数不是有效的整数,请重新运行脚本并输入正确的数字。"
return 1
fi
echo"请输入第二个数:"
read num2echo"输入的第一个数不是有效的整数,请重新运行脚本并输入正确的数字。"
return 1
fi
echo"请输入第二个数:"
read num2
if![[[ $num2 =~ ^[0-9]+$ ]]; 
then
echo"输入的第二个数不是有效的整数,请重新运行脚本并输入正确的数字。"
return 1
fi
result=$((num1 + num2))
echo"两数之和为:$result"
sum
[root@localhost ~]# chmod +x sum.sh
[root@localhost ~]# ./sum.sh
请输入第一个数:2
请输入第二个数:3
"你输入的两个数为:2和3."
"两个数的和为:5"

 

系统资源监控并报警函数

该函数会定期监控系统的CPU和内存使用率,当使用率超过设定的阈直时,会发送报警信息,这里简单模拟为输出到控制台,实际应用中可扩展为发送邮件、短信等。

[root@localhost ~]# vim jiankong.sh
#!/bin/bash
#发送报警信息的函数
send alert() {
local message=$1
echo "ALERT: $message"
}monitor_system_resources() {
local cpu_threshold=$1
local mem_threshold=$2
local interval=$3while true;
do
cpu_usage=$(top -bn1 | grep "Cpu(s)" | awk '{print$2+$4}')
mem_usage=$(free | awk '/Mem/ {printf("%.2f",$3/$2 * 1((00)}.
if(( $(echo "$cpu_usage > $cpu_threshold" | bc -1) ));
thensend_alert "CPU usage ($cpu_usage%)."
fi
if(( $(echo "$mem_usage > $mem_threshold" | bc-1) )); then
send_alert "Memory usage ($mem_usage%)."
fi
sleep "$interval"
done
}
monitor_system_resources 5 1 5

 参数说明:函数接收三个参数,分别是CPU使用率阈值、内存使用率阈值以及监控间隔时间(秒)。
循环监控:使用whiletrue循环不断监控系统资源。通过 top和free命令获取CPU和内存使用率,使用bc命令进行浮点数比较。
报警处理:当使用率超过阈值时,调用send_alert函数发送报警信息。

函数变量的作用范围

在编写脚本时,有时需要将变量的值限定在函数内部,可以通过内置命令local来实现。函数内部变量的使用,可以避免函数内外同时出现同名变量对脚本结果的影响。

[root@localhost ~]# vim fun_scope.sh
myfun ()
{
local i
i=8
echo $i
}
i=9
myfun
echo $i
[root@localhost ~]# chmod +x fun_scope.sh
[root@localhost ~]# ./fun_scope.sh
8
9

 

函数的参数

函数的参数的用法如下。
函数名称  参数1  参数2  参数3.

在使用函数参数时,函数名称在前参数在后,函数名和参数之间用空格分隔,可以有多个参数,参数使用$1,$2,$3....的方式表达。

[root@localhost ~]# vim write_log.sh
#!/bin/bash
mydir="/data" outfile="${mydir}/my.log"
[ -e "${mydir}" ] | mkdir -p ${mydir}
appendfile()
{
echo "$2" >> "$1"
}
appendfile ${outfile} "first line content."
appendfile ${outfile} "second line content."
[root@localhost ~]# chmod +x write_log.sh
[root@localhost ~]# ./write_log.sh
[root@localhost ~]# cat /data/my.log
firstline content. second line content.

 

递归函数

Shell也可以实现递归函数,就是可以调用自己本身的函数。在Linux系统上编写Shell脚本的时候,经常需要递归遍历系统的目录,列出目录下的文件和和目录,逐层递归列出,并对这些层级关系进行展示。

[root@localhost ~]# vim fun_recursion.sh
#!/bin/bash
traverse_directory() {
local dir=$1
for item in "$dir"/*; 
do
if [ -d "$item" ]; 
then
echo "Directory: $item"
traverse_directory "$item"
elif [ -f "$item" ];then
echo "File: $item"
fi
done
}traverse_directory "."
[root@localhost ~]# chmod +x fun_recursion.sh
[root@localhost ~]# ./fun_recursion.sh

 

shell数组

在Shell脚本中,数组是一种常见的数据结构,Shell中的数组与Java、C、Python不同,只有维数组,没有二维数组。数组元素的大小与限制,也不需要事先定义。Shell数组用括号()来表示,元素用空格分隔,元素的下标与大部分编程语言类似从0开始.

方法一:
数组名=(value0value1value2...
方法二:
数组名=([0]=value [1]=value [2]=value...)
方法三:
列表名="valueevalue1value2
."数组名=($列表名)
方法四:
数组名[0]="value"数组名[1]="value"数组名[2]="value

获取数组的长度

获取普通数组长度可以使用${#数组名[@]}或${#数组名[*]}这两种语法效果一样。

[root@localhost ~]# arr_number=(1 2 3 4 5)
[root@localhost ~]# arr_length=${#arr_number[*]}
[root@localhost ~]# echo $arr_length
5
[root@localhost ~]# arr_length_1=${#arr_number[@] 
[root@localhost ~]# echo $arr_length_1
5

读取某下的标赋值

在Shell编程里,你可以读取数组中指定下标的元素,也可以给指定下标的数组元素赋值。

[root@localhost ~]# arr_index2=${arr_number[2]}
[root@localhost ~]# echo $arr_index2
з

数组遍历

在Shell编程里,数组遍历指的是按顺序访问数组中的每一个元素,并对这些元素执行特定操作的过程。

[root@localhost ~]# vim array_traverse.sh
#!/bin/bash
arr_number=(1 2 3 4 5)
for i in ${arr_number[@]}
do
echo $i
done
[root@localhost ~]# chmod +x array_traverse.sh
[root@localhost ~]# ./array_traverse.sh
1
2
3
4
5

数组切片

数组切片是一种操作,用于从数组中提取出一部分连续的元素,形成一个新的数组,此存操作在不同的版本种存在差异。

[root@localhost ~]# arr=(1 2 3 4 5)
[root@localhost ~]# echo ${arr[@]}
12345
[root@localhost ~]# echo ${arr[@]:0:2}
1 2
[root@localhost ~]# echo ${arr[@]:2:3}
3 4 5

数组替换

[root@localhost ~]# arr=(1 2 3 4 5)
[root@localhost ~]# echo ${arr[@]/4/66}
1 2 3 66 5
[root@localhost ~]# echo ${arr[@]}
1 2 3 4 5
[root@localhost ~]# arr=(${arr[@]/4/66})
[root@localhost ~]# echo ${arr[@]}
1 2 3 66 5

数组删除

删除数组

[root@localhost ~]# arr=(1 2 3 4 5)
[root@localhost ~]# unset arr

 删除单个元素

[root@localhost ~]# echo ${arr[*]}
[root@localhost ~]# arr=(1 2 3 4 5)
[root@localhost ~]# unset arr[2]
[root@localhost ~]# echo ${arr[*]}
1 2 4 5

 

shell脚步调试

在shell脚本开发中,要注意把复杂的脚本简单化,思路要清晰,分段。

除echo外,bash shell亦有相应的参数可以调试脚本。使用bash参数调试,语法为:

sh [-nvx] 脚本名

-n:不会执行该脚本,仅查询脚本语法是否有问题,如果没有语法问题就不显示任何内容,如果
有问题会提示报错。
-V:在执行脚本时,先将脚本的内容输出到屏幕上然后执行脚本,如果有错误,也会给出错误提
-x:将执行的脚本内容输出到屏幕上,这个是对调试很有用的参数。

[root@localhost ~
vim test.sh
#!/bin/bash
set-x/
read-p"请输入您的分数(0-100):"GRADE
if[$GRADE -ge 85 ] && [ $GRADE -le 100 ]
then
echo"$GRADE分!优秀"
elif [ $GRADE -ge 70 ] & [ $GRADE -1e 84 ]
then
echo"$GRADE分,合格"else
echo"$GRADE分?不合格"
fi
set +x

相关文章:

shell编程之函数与数组

目录 shell函数 函数的用法 俩个数求和 系统资源监控并报警函数 函数变量的作用范围 函数的参数 递归函数 shell数组 获取数组的长度 读取某下的标赋值 数组遍历 数组切片 数组替换 数组删除 shell脚步调试 shell函数 函数的用法 Shell函数可用于存放一系列的…...

IntelliJ IDEA 中最常用的快捷键分类整理

以下是 IntelliJ IDEA 中最常用的快捷键分类整理,适用于 Windows/Linux(Mac 用户将 Ctrl 替换为 ⌘,Alt 替换为 Option): 一、编辑相关 快捷键功能说明Ctrl Space基础代码补全Ctrl Shift Space智能类型补全Ctrl P…...

大数据面试问答-Kafka/Flink

1. Kafka 1.1 定位 分布式流数据平台,核心解决三大问题: 高吞吐的实时数据管道:支持每秒百万级消息处理。 持久化的消息队列:消息持久化到磁盘,支持多订阅者。 流式数据处理:与 Flink/Spark Streaming 集…...

工厂园区光储充能量管理系统解决方案——助力高效用能与低碳运营

园区痛点:电费高、能效低、碳排压力大 安科瑞 郭海棚 198 21380729 电费成本高:峰谷电价差显著,尖峰时段用电成本激增。设备能效低:老旧设备能耗高,缺乏实时监控与优化手段。供电稳定性差:生产设备突发停电…...

Windows10下Jekyll博客部署全指南|解决GitHub模板运行失败问题

场景:在GitHub拉取的一个Jekyll博客网站运行不起来 这是想要实现的效果 这是项目代码 概要 前置要求 git版本控制工具已安装windows10环境GitHub可以正常上网 相关问题 Jekyll博客部署常见错误GitHub模板运行失败解决方法Windows10环境变量配置Ruby版本兼容性问…...

数字IC设计-VCS和Verdi的使用

#学习记录# 前言:本文以一个简单的计数器来说明vcs和verdi的使用 1 代码文件 1.1 计数器代码 //Engineer:Mr-pn-junction module counter(input clk,input rst,output reg [5:0] count); always(posedge clk or negedge rst)beginif(!rst)coun…...

FastAPI基础知识点精要

一、核心性能优势 1. 异步编程支持 原生async/await语法‌:支持非阻塞IO操作,轻松处理高并发场景‌ASGI协议实现‌:基于Starlette框架构建,支持WebSocket等实时协议‌性能基准‌:测试显示响应速度比Flask快3-5倍&…...

<uniapp><websocket><http>基于uniapp,手机客户端通过websocket进行数据通讯(二维码扫码数据)

前言 本专栏是基于uniapp实现手机端各种小功能的程序,并且基于各种通讯协议如http、websocekt等,实现手机端作为客户端(或者是手持机、PDA等),与服务端进行数据通讯的实例开发。 发文平台 CSDN 环境配置 系统:windows 平台:visual studio code、HBuilderX(uniapp开…...

GitLab-获取token(访问令牌)

一、操作步骤 GitLab-获取token(访问令牌)主要步骤:以及相关截图 登录 GitLab 打开 GitLab 网站并登录你的账号。 进入用户设置 点击右上角头像 → Edit profile → 左侧菜单选择 Access Tokens。 创建 Token Token name: 输入名称&#…...

python 安装win32com.client库

win32com.client是Python中用于操作Windows COM对象的强大模块,特别适合与Microsoft Office应用程序(如Word、Excel、Outlook等)进行交互。 1. 安装win32com.client 需要安装pywin32库: pip install pywin32如果安装失败或速度慢,可以使用国…...

流量统计--Maven依赖

新建项目Flow 创建依赖&#xff0c;在pm.xml里添加如下内容&#xff1a; <!-- 添加hadoop-client 3.1.3的依赖--> <dependencies> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>…...

L1-6 大勾股定理(PTA)

大勾股定理是勾股定理的推广&#xff1a;对任何正整数 n 存在 2n1 个连续正整数&#xff0c;满足前 n1 个数的平方和等于后 n 个数的平方和。例如对于 n1 有 324252&#xff1b;n2 有 102112122132142 等。给定 n&#xff0c;本题就请你找出对应的解。 输入格式&#xff1a; …...

HarmonyOS-ArkUI V2装饰器: @Computed装饰器:计算属性

引 @Computed是用来装饰一个自己写的getter方法的装饰器,它可以让您像用平常的状态变量那样去用这个getter方法。那么getter方法里怎么获取的值,必然涉及到您写的逻辑。这个逻辑可以是很复杂的一种计算方式,经过一系列复杂方式计算完您吐出相应的结果即可。 为了便于理解,…...

豆瓣图书数据采集与可视化分析

文章目录 一、适用题目二、豆瓣图书数据采集1. 图书分类采集2. 爬取不同分类的图书数据3. 各个分类数据整合 三、豆瓣图书数据清洗四、数据分析五、数据可视化1. 数据可视化大屏展示 源码获取看下方名片 一、适用题目 基于Python的豆瓣图书数据采集与分析基于Python的豆瓣图书…...

网络安全·工具篇1·Nmap的运用

今天我们要介绍网络安全中常用的一种扫描工具Nmap&#xff0c;它被设计用来快速扫描大型网络&#xff0c;主要功能包括主机探测、端口扫描以及版本检测&#xff0c;小编将在下文详细介绍Nmap相应的命令。 Nmap的下载安装地址为&#xff1a;Nmap: the Network Mapper - Free Se…...

MVCC详细介绍及面试题

目录 1.什么是mvcc&#xff1f; 2.问题引入 3. MVCC实现原理&#xff1f; 3.1 隐藏字段 3.2 undo log 日志 3.2.1 undo log版本链 3.3 readview 3.3.1 当前读 ​编辑 3.3.2 快照读 3.3.3 ReadView中4个核心字段 3.3.4 版本数据链访问的规则&#xff08;了解&#x…...

designware IP如何被FPGA综合

DW的IP要被vivado等综合还是很麻烦的&#xff0c;而是用synplify等综合工具&#xff0c;然后再嫁接到vivado中也非常麻烦。本文提供一种解决办法。 1. 对DW的IP进行gtech综合。即使用DC工具对DW IP进行综合。而使用的综合库是gtech。脚本如下&#xff1a; set target_library…...

图像预处理-色彩空间补充,灰度化与二值化

一.图像色彩空间转换 1.1 HSV颜色空间 HSV颜色空间使用色调&#xff08;Hue&#xff09;、饱和度&#xff08;Saturation&#xff09;和亮度&#xff08;Value&#xff09;三个参数来表示颜色 一般对颜色空间的图像进行有效处理都是在HSV空间进行的&#xff0c;然后对于基本…...

C语言socket绑定本地端口和查询

查询 // 查询本地地址和端口&#xff08;在没有绑定的情况下&#xff0c;系统会自动分配一个端口&#xff09;struct sockaddr_in local_addr;socklen_t addr_len sizeof(local_addr);if (getsockname(sockfd, (struct sockaddr*)&local_addr, &addr_len) 0) {std::c…...

Centos7编译安装sudosh2

Centos7编译安装sudosh2 sudosh2简介安装sudoshCentos7编译安装sudosh2步骤 1&#xff1a;Debian安装 sudosh步骤 2&#xff1a;配置 sudosh步骤 3&#xff1a;查看会话记录重播会话注意事项 sudosh2简介 sudosh2项目地址: https://github.com/squash/sudosh2 虽然项目已经停…...

C#使用httpClient.PostAsync()界面卡死

背景&#xff1a;部分代码移植后运行到httpClient.PostAsync()时界面就卡死。 代码片段&#xff1a; 解决办法&#xff1a; 把HttpResponseMessage response await httpClient.PostAsync(requestUrl, content); 改为HttpResponseMessage response httpClient.PostAsync(req…...

基于深度学习的狗鼻纹身份识别

基于深度学习的狗鼻纹身份识别 1. 技术背景 根据GMI报告&#xff0c;2020年全球宠物护理市场规模超过2320亿美元。随着宠物经济的快速发展&#xff0c;宠物福利问题日益突出。在宠物管理、交易、保险、医疗等许多场景中&#xff0c;宠物识别是一个具有挑战性的问题&#xff0…...

面试题:Eureka和Nocas的区别

Eureka 与 Nacos 核心区别对比 一、功能定位与核心能力 ‌维度‌‌Eureka‌‌Nacos‌‌核心功能‌专注服务注册与发现&#xff0c;无配置管理功能‌:ml-citation{ref“1,3” data“citationList”}集成服务注册、发现、配置管理、动态DNS等‌:ml-citation{ref“1,3” data“c…...

MongoDB入门与安装指南

目录 一、MongoDB简介 二、MongoDB安装 &#xff08;一&#xff09;MongoDB Server安装 &#xff08;二&#xff09;MongoDB Compass安装 三、MongoDB与Spring Data MongoDB框架的连接 四、总结 一、MongoDB简介 MongoDB是一种高性能、开源的NoSQL&#xff08;非关系型&…...

排序算法复杂度及稳定性全解析(八种排序)

在计算机科学领域&#xff0c;排序算法是基础且重要的内容。不同的排序算法在时间复杂度、空间复杂度以及稳定性上存在差异&#xff0c;合理选择排序算法能极大提升程序性能。本文将对常见排序算法进行全面剖析&#xff0c;并引入计数排序这一特殊的排序算法。 一、常见排序算…...

PTA:古风排版

中国的古人写文字&#xff0c;是从右向左竖向排版的。本题就请你编写程序&#xff0c;把一段文字按古风排版。 输入格式&#xff1a; 输入在第一行给出一个正整数N&#xff08;<100&#xff09;&#xff0c;是每一列的字符数。第二行给出一个长度不超过1000的非空字符串&a…...

华熙生物亮相消博会,这次又带来了什么样的变化?

首先&#xff0c;从展示层面来看&#xff0c;华熙生物在消博会上构建科技桥梁&#xff0c;展台主视觉展示糖生物学发展历程与自身发展交织历程&#xff0c;这象征着中国生物科技企业从产业突围到定义全球标准的蜕变。这一展示不仅提升了华熙生物的品牌形象&#xff0c;更向外界…...

【设计模式】适配器模式:让不兼容的接口和谐共处

引言 在软件开发中&#xff0c;我们经常会遇到这样的情况&#xff1a;两个已经存在的接口无法直接协同工作&#xff0c;但我们又希望它们能够无缝对接。这时&#xff0c;适配器模式就派上用场了。适配器模式&#xff08;Adapter Pattern&#xff09;是一种结构型设计模式&…...

QuickAPI 核心能力解析:构建数据服务化的三位一体生态

在企业数据资产化运营的进程中&#xff0c;如何打破数据开发与共享的效率瓶颈&#xff0c;实现从 “数据可用” 到 “数据好用” 的跨越&#xff1f;麦聪软件的 QuickAPI 给出了系统性答案。作为 SQL2API 理念的标杆产品&#xff0c;QuickAPI 通过SQL 编辑器、数据 API、数据市…...

vue3 elementPlus中el-tree-select封装和自定义模糊搜索

:filter-node-method"filterNodeMethod"此方法对应的是模糊搜索&#xff0c;// 获取树形数据 const loadTreeData async () > {try {const res await deviceTree()if (res.data) {treeData.value res.data// 构建 ID 到标签的映射idMap.value new Map()const …...

【哈夫曼树和哈夫曼编码是什么?】

哈夫曼树和哈夫曼编码是数据压缩领域中的核心概念&#xff0c;它们基于字符出现的频率来实现高效编码。下面是详细介绍&#xff0c;通俗易懂。 一、什么是哈夫曼树&#xff08;Huffman Tree&#xff09;&#xff1f; 哈夫曼树是一种最优二叉树&#xff0c;用于构造最短的前缀编…...

量子纠缠物理本质、技术实现、应用场景及前沿研究

以下是关于 量子纠缠(Quantum Entanglement) 的深度解析,涵盖物理本质、技术实现、应用场景及前沿研究,以技术视角展开: 一、量子纠缠的物理本质 1. 核心定义 量子纠缠是多个量子系统(如粒子)间的一种关联状态,表现为: 非局域性:纠缠态粒子无论相距多远,测量其中一…...

时间的重构:科技如何重塑人类的时间感知与存在方式

时间是人类认知的基石&#xff0c;也是科技发展的终极命题。从石英钟到量子计时器&#xff0c;从日晷到区块链时间戳&#xff0c;技术不断重构着我们对时间的理解与利用。然而&#xff0c;当人工智能、量子计算和脑机接口等前沿技术开始挑战时间的线性本质时&#xff0c;我们不…...

现代测试自动化框架教程:Behave接口测试与Airtest移动端UI自动化

前言 我发现每天还是陆陆续续有人在看我之前写的自动化框架搭建的文档&#xff1b;即使很早就有新的框架&#xff0c;更好的选择出来了&#xff1b;所以特别写了这一篇目前大厂也在使用的&#xff1b;日活400w有实际落地的自动化测试架构方案&#xff1b; 随着测试技术…...

linux-设置每次ssh登录服务器的时候提醒多久需要修改密码

在 Linux 系统中,你可以通过设置 motd(Message of the Day)或 sshd 配置来在用户通过 SSH 登录时提醒他们密码即将过期。以下是具体步骤: 方法 1: 使用 motd 文件 motd 文件在用户登录时显示,你可以通过脚本动态生成内容,提醒用户密码过期时间。 编辑 /etc/motd 文件:…...

JAVA如何操作文件?(超级详细)

目录 一、认识文件和相关知识 1.认识文件 2.⽬录 3.⽂件路径&#xff08;Path&#xff09; 4.文本文件和二进制文件的区分 二、File类操作文件 1.构造方法 2.方法 2.1 方法表 2.2 get相关的方法和构造方法 2.2.1 “.” 和 “..” 2.3 is相关的方法 2.4 删除相关…...

Debian服务器挂载外部存储设备的完整指南

在 Debian 系统中挂载外部存储设备(如 U 盘、移动硬盘、SSD)是服务器运维和桌面使用中非常常见的操作。本文将为你详细拆解从识别设备、格式化到手动/自动挂载的全过程&#xff0c;适合新手到进阶用户参考。 一、准备阶段&#xff1a;插入存储设备并识别 1. 插入外部设备后查看…...

搭建一个网站需要选择什么配置的服务器?

一般要考虑网站规模、技术需求等因素来进行选择。 小型网站&#xff1a;个人博客、小型企业官网等日均量在 1000 以内的网站&#xff0c;一般推荐2 核 CPU、4GB 内存、50GB 硬盘&#xff0c;带宽 1 - 5M。如果是纯文字内容且图片较少的小型网站&#xff0c;初始阶段 1 核 CPU、…...

基于STM32与NB-IoT的智慧路灯远程监控系统

标题:基于STM32与NB-IoT的智慧路灯远程监控系统 内容:1.摘要 随着城市化进程的加快&#xff0c;路灯作为城市基础设施的重要组成部分&#xff0c;其管理和维护的智能化需求日益增长。本文的目的是设计并实现一种基于STM32与NB - IoT的智慧路灯远程监控系统。采用STM32微控制器…...

【高阶数据结构】第三弹---图的存储与遍历详解:邻接表构建与邻接矩阵的BFS/DFS实现

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【高阶数据结构】 目录 1、图的存储结构 1.1、邻接表 1.1.1、边的结构 1.1.2、图的基本结构 1.1.3、图的创建 1.1.4、获取顶点下…...

Tmi-clnet:从影像学、临床和放射学数据融合判断慢性肝病预后的三模态相互作用网络——医学图像论文学习,论文源码下载

论文地址&#xff1a;https://arxiv.org/pdf/2502.00695v1 源码地址&#xff1a;https://github.com/Mysterwll/liver 一、主要内容 本文提出了名为TMI-CLNet的三模态交互网络&#xff0c;用于慢性肝病的预后评估。具体来说&#xff0c;开发了一个模态内聚合模块和一个三模态…...

SpringBoot整合POI实现Excel文件的导出与导入

使用 Apache POI 操作 Excel文件,系列文章: 《SpringBoot整合POI实现Excel文件的导出与导入》 《SpringMVC实现文件的上传与下载》 《C#使用NPOI导出Excel文件》 《NPOI使用手册》 1、Apache POI 的介绍 Apache POI 是一个基于 Java 的开源库,专为读写 Microsoft Office 格…...

编程行业语言学习与竞争剖析:探寻冷门中的机遇

编程行业语言学习与竞争剖析&#xff1a;探寻冷门中的机遇 在编程领域不断拓展与演变的进程里&#xff0c;“编程行业什么开发语言竞争小易学习” 这一问题&#xff0c;始终萦绕在众多编程爱好者与初涉此道者的心头。今日&#xff0c;我&#xff08;卓伊凡&#xff0c;优雅草的…...

数据库学习通期末复习二

&#x1f31f; 各位看官好&#xff0c;我是maomi_9526&#xff01; &#x1f30d; 种一棵树最好是十年前&#xff0c;其次是现在&#xff01; &#x1f680; 今天来学习C语言的相关知识。 &#x1f44d; 如果觉得这篇文章有帮助&#xff0c;欢迎您一键三连&#xff0c;分享给更…...

道可云人工智能每日资讯|首届世界人工智能电影节在法国尼斯举行

道可云元宇宙每日简报&#xff08;2025年4月15日&#xff09;讯&#xff0c;今日元宇宙新鲜事有&#xff1a; 杭州《西湖区打造元宇宙产业高地的扶持意见》发布 杭州西湖区人民政府印发《西湖区打造元宇宙产业高地的扶持意见》。该意见已于4月4日正式施行&#xff0c;有效期至…...

Python 冷门魔术方法

__init_subclass__ https://docs.python.org/3/reference/datamodel.html#object.__init_subclass__ Python 3.6 新增。 父类派生子类后会调用该方法&#xff0c;方法中 cls 指向派生出的子类。 若__init_subclass__被定义为普通方法&#xff0c;将会被隐式转换为类方法&…...

【已更新完毕】2025泰迪杯数据挖掘竞赛C题数学建模思路代码文章教学:竞赛智能客服机器人构建

基于大模型的竞赛智能客服机器人构建 摘要 随着国内学科和技能竞赛的增多&#xff0c;参赛者对竞赛相关信息的需求不断上升&#xff0c;但传统人工客服存在效率低、成本高、服务不稳定和用户体验差的问题。因此&#xff0c;设计一款智能客服机器人&#xff0c;利用人工智能技术…...

L1-028 判断素数

L1-028 判断素数 L1-028 判断素数 - 团体程序设计天梯赛-练习集 (pintia.cn) 题解 素数概念&#xff1a;一个数如果只能被1和这个数本身整除&#xff0c;那么这个数就是素数。 并且1不是素数&#xff0c;2是素数。 因为题目中数最长位数是9位数&#xff0c;所以我用了long…...

向量数据库

目录标题 阶段二&#xff1a;核心技术深入学习阶段三&#xff1a;工具与实践 1. 基础概念问题&#xff1a;什么是向量数据库&#xff1f;它与传统关系型数据库的区别是什么&#xff1f;问题&#xff1a;向量数据库的核心数据结构是什么&#xff1f;为什么向量适合用于高维数据&…...

《Vue3学习手记2》

今天主要学习Vue3中的数据监视&#xff1a; ps: 代码中的注释写的很详细&#xff0c;这样更有利于理解 watch 作用: 监视数据的变化(和Vue2中watch作用一致) 特点: Vue3中的watch只能监视以下四种数据: ref创建定义的数据&#xff08;基本类型、对象类型&#xff09;reactiv…...