扬中做网站/网页开发流程
目录
1.1.用途
1.2.基本语法
1.2.1.格式:
1.2.2.例
1.3 文件测试
1.4.整数测试
1.4.1.作用
1.4.2.操作符
1.4.3.示例:
1.5.逻辑操作符
1.5.1.符号
1.5.2.例:
1.6.命令分隔符
1.1.用途
为了能够正确处理Shell程序运行过程中遇到的各种情况,Linux Shell提供了一组测试运算符.
通过这些运算符,shell程序能够判断某种或者几个条件是否成立。
条件测试在各种流程控制语句,例如判断语句和循环语句中发挥了重要的作用,所以了解和掌握这些条件测试是非常重要的
1.2.基本语法
1.2.1.格式:
格式1: test -参数 条件表达式
格式2: [ 条件表达式 ] # 注意: [ ] 的左右要有空格
格式3: [[ 条件表达式 ]] # 注意: [ ] 的左右要有空格,格式1.2的增强版本,支持通配符 # 只有[[ ]]可以支持并且启用双重正则
格式4: ((条件表达式))注意:
test单独使用,判断条件为真,echo s?返回0,假返回1
test与[ ]等价
[[ ]] 是扩展命令,可以使用通配符等进行模式匹配,&& >等操作符可以直接应用于双中括号中,但不能用于单中括号中
(())一般用于if语句里,两端不需要有空格,测试对象为整数在[ ]中参数:-a并且,-o或者
1.2.2.例
格式一:
test -参数 条件表达式
测试passwd是否为普通文件
[root@server ~]# test -f /etc/passwd # -f 是否为普通文件
[root@server ~]# echo $? # 以上俩条命令要配合使用# 返回值0成立,返回值1不成立。
# test配合自编逻辑表示
[root@server ~]# test -f /etc/hosts && echo 1 || echo 0
1
[root@server ~]# test -f /etc/a1.txt && echo 1 || echo 0
0
# 解析:并且(&&):左侧成立则右侧执行,
或者(||):左侧成立则右侧不执行
扩展:
[root@server ~]# test -f /etc/hosts && echo "文件为普通文件" || echo "文件不为普通文件"
文件为普通文件
[root@server ~]# test -f /etc/a1.txt && echo "文件为普通文件" || echo "文件不为普通文件"
文件不为普通文件
格式二:
[ 条件表达式 ] # 注意: [ ] 的左右要有空格 # test与[ ]等价
[root@server ~]# [ -f /etc/hosts ] && echo 1 || echo 0
1
[root@server ~]# [ -f /etc/a1.txt ] && echo 1 || echo 0
0
[root@server ~]# [ -f /etc/hosts ] && echo "文件为普通文件" || echo "文件不为普通文件"
文件为普通文件
[root@server ~]# [ -f /etc/a1.txt ] && echo "文件为普通文件" || echo "文件不为普通文件"
文件不为普通文件
[root@server ~]# [ 3 > 2 && 1 < 2 ] && echo yes ||echo no
-bash: [: 缺少 `]' # 不支持通配符等进行模式匹配
no
格式三:
[[ 条件表达式 ]] # 注意: [ ] 的左右要有空格,格式1.2的增强版本,支持通配符
[root@server ~]# [[ 3>2 || 1>2 ]]
-bash: 条件命令中有未预期的符号 284
-bash: “3>”附近有语法错误 # 报错原因<, > 俩侧需要加空格&&(并且):
[root@server ~]# [[ 3 > 2 && 1 > 2 ]] && echo yes ||echo no
no
[root@server ~]# [[ 3 < 2 && 1 > 2 ]] && echo yes || echo no
no
[root@server ~]# [[ 3 < 2 && 1 > 2 ]] && echo yes || echo no
no
[root@server ~]# [[ 3 < 2 && 1 < 2 ]] && echo yes || echo no
no
[root@server ~]# [[ 3 > 2 && 1 < 2 ]] && echo yes ||echo no
yes # 结论:左右都成立才返回真||(或者):
[root@server ~]# [[ 3 > 2 || 1 > 2 ]] && echo yes ||echo no
yes[root@server ~]# [[ 3 > 2 || 1 > 2 ]] && echo yes || echo no
yes
[root@server ~]# [[ 3 < 2 || 1 < 2 ]] && echo yes || echo no
yes
[root@server ~]# [[ 3 < 2 || 1 > 2 ]] && echo yes || echo no
no # 结论:只要左右有一方成立则返回为真[root@server ~]# [[ -f /etc/passwd ]] && echo 1 || echo 0
1
格式四:
((条件表达式)) # 一般只支持整数的操作
[root@server ~]# ((3>5)) && echo 1 || echo 0
0
[root@server ~]# ((3<5)) && echo 1 || echo 0
1不可执行:
[root@server ~]# ((3.1<5)) && echo 1 || echo 0
-bash: ((: 3.1<5:语法错误: 无效的算术运算符 (错误符号是 ".1<5")
0[root@server ~]# ((-f /etc/passwd)) && echo 1 || echo 0
-bash: ((: -f /etc/passwd:除以 0 (错误符号是 "etc/passwd")
0
1.3 文件测试
可使用以下命令的参数:test ,[ ] [[ ]]
参数 作用 -b 文件名 检测文件是否是块设备文件,是返回 true -c 文件名 是否是字符设备文件 -d 文件名 是否是目录 -f 文件名 是否是普通文件 (不是目录,也不是设备文件) -S 文件名 是否为socket文件 -P 文件名 是否为管道符文件 -L 文件名 是否为链接文件 -u 文件名 是否有suid的权限 -s 文件名 是否为空(文件大小是否大于0) ,不为空返回 true -e 文件名 检测文件 (包括目录)是否存在,如果是,则返回 true -r 文件名 检测文件是否可读,如果是,则返回 true。 -w 文件名 检测文件是否可写,如果是,则返回 true -X 文件名 检测文件是否可执行,如果是,则返回 true -n 参数 检测数字是否为整数 f1 -nt f2 文件f1比文件f2新则为真 (根据文件修改时间计算) f1 -ot f2 文件f1比文件f2旧则为真 (根据文件修改时间计算)
例:
[root@server ~]# [ -e /etc/passwd ] && echo yes || echo no
yes
[root@server ~]# [ -f /etc/passwd ] && echo yes || echo no
yes
[root@server ~]# [ -d /etc/passwd ] && echo yes || echo no
no
[root@server ~]# [ -d /etc ] && echo yes || echo no
yes
[root@server ~]# [ -s /etc/passwd ] && echo yes || echo no
yes
[root@server ~]# [ -x /bin/over ] && echo yes || echo no
yes
# d开头的均为块文件。c 为字符串文件, l开头为链接文件
则有:
[root@server ~]# [ -c /dev/sr0 ] && echo yes || echo no
no
[root@server ~]# [ -b /dev/sr0 ] && echo yes || echo no
yes[root@server ~]# [ -L /dev/cdrom ] && echo yes || echo no
yes # 光盘的快捷方式
[root@server ~]# touch /etc/a.txt
[root@server ~]# [ -s /etc/a.txt ] && echo yes || echo no
no
[root@server ~]# echo "hello world" > /etc/a.txt
[root@server ~]# [ -s /etc/a.txt ] && echo yes || echo no
yes读,写,执行:
[root@server ~]# ll /etc/a.txt
-rw-r--r--. 1 root root 12 12月 10 16:30 /etc/a.txt
[root@server ~]# [ -r /etc/a.txt ] && echo yes || echo no
yes
[root@server ~]# [ -w /etc/a.txt ] && echo yes || echo no
yes
[root@server ~]# [ -x /etc/a.txt ] && echo yes || echo no
nof1 -nt f2:比较的主要是最近改动时间
例题:编写脚本,测试根目录文件是否存在,文件名从键盘输入,若不存在则创建
方法一:使用read命令来获取变量名
[root@server ~]# vim test1.sh
#!/bin/bash read -p "请输入文件名称:" filename if test -e /$filename thenecho "$filename exists and it is a normal file" elseecho "$filename doesn't exit!!"echo "create file $filename"touch /$filename fi
执行查看/下是否存在mnt,并且查看nmt是否存在,若不存在则创建
方法二:使用位置变量来获取变量名
[root@server ~]# vim test1.sh
#!/bin/bash filename=$1 if test -e /$filename thenecho "$filename exists and it is a normal file" elseecho "$filename doesn't exit!!"echo "create file $filename"touch /$filename fi
执行查看/下是否存在mnt,并且查看mnnt是否存在,若不存在则创建
注意:使用find检索文件,无论成功与否状态码均为一
1.4.整数测试
1.4.1.作用
用于比较两个数值的大小关系,操作的对象是数值
1.4.2.操作符
整数二元比较操作符使用参考
#知识扩展
在[ ]以及 test 中使用的比较符号 在(())和[[ ]] 中使用的比较符号 说明 -eq ==或= 相等,全拼为 equal -ne != 不相等,全拼为 not equal -gt > 大于,全拼为 greater than -ge >= 大于等于,全拼为 greater equal -lt < 小于,全拼为 less than -le <= 小于等于,全拼为 less equal
#=~ : 检查左侧内容是否匹配右侧的正则表达式
1.4.3.示例:
[root@server ~]# [ 6 -gt 3 ] && echo yes || echo no
yes
[root@server ~]# [ 6 -lt 3 ] && echo yes || echo no
no
[root@server ~]# test 6 -lt 3 && echo yes || echo no
no
[root@server ~]# test 6 -gt 3 && echo yes || echo no
yes
[root@server ~]# [[ 6 < 3 ]] && echo yes || echo no
no
[root@server ~]# [[ 6 > 3 ]] && echo yes || echo no
yes
[root@server ~]# ((6>3)) && echo yes || echo no
yes
[root@server ~]# ((6<3)) && echo yes || echo no
no
[root@server ~]# ((6 < 3)) && echo yes || echo no
no
#=~ : 检查左侧内容是否匹配右侧的正则表达式
[root@server ~]# n1=123
[root@server ~]# [[ $n1 =~ ^[0-9]+$ ]] && echo yes || echo no
yes # 匹配n1内的内容是否全为数字[root@server ~]# n1=123abd
[root@server ~]# [[ $n1 =~ ^[0-9]+$ ]] && echo yes || echo no
no
[root@server ~]# n1="china"
[root@server ~]# [[ $n1 =~ ^[0-9]+$ ]] && echo yes || echo no
no
例题一:编写表达式,测试系统用户以50个为界限输出相关信息。(多余或少于)
[root@server ~]# [[ $(cat /etc/passwd |wc -l) > 50 ]] && echo "用户大于50" || echo "用户小于50"
用户小于50
例题二:判断当前的已登录的账户数,超过5个则输出提示信息
方法一:
[root@server ~]# who |cut -d " " -f1 | sort -u | wc -l # 过滤登陆用户个数
1# who:查看账户信息
# cut -d " " -f1: 以空格作为列间隔符,截取第1列
# sort -u : 去重后排序
[root@server ~]# [ $(who |cut -d " " -f1 | sort -u | wc -l) -lt 5 ] && echo "登陆用户数小于5" || echo "登陆用户数大于5"
登陆用户数小于5方法二:
[root@server ~]# num=$(who |cut -d " " -f1 | sort -u | wc -l)
[root@server ~]# [ $num -lt 5 ] && echo "登陆用户数小于5" || echo "登陆用户数大于5"
登陆用户数小于5
例三:如果/var/log/messages 文件行数大于50行,则显示提示信息
方法一:
[root@server ~]# mnu=$(cat /var/log/messages | wc -l)
[root@server ~]# echo $mnu
102
[root@server ~]# [ $mnu -gt 50 ] && echo "文件行数大于50" || echo "文件行数小于50"
文件行数大于50方法二:
[root@server ~]# [ $(cat /var/log/messages | wc -l) -lt 50 ] && echo "文件行数小于50" || echo "文件行数大于50"
文件行数大于50
[root@server ~]# [ $(cat /var/log/messages | wc -l) -gt 50 ] && echo "文件行数大于50" || echo "文件行数小于50"
文件行数大于50[root@server ~]# (( $(cat /var/log/messages | wc -l) > 50 )) && echo "文件行数大于50" || echo "文件行数小于50"
文件行数大于50
注意:[root@server ~]# [[ $(cat /var/log/messages | wc -l) > 50 ]] && echo "文件行数大于50" || echo "文件行数小于50"
文件行数小于50# 答案错误,原因:双方括号
[[ ]]
,它是 Bash shell 特有的条件判断符号。在这个命令中,$(cat /var/log/messages | wc -l)
的计算方式与第一个命令相同。然而,条件判断符号>
在双方括号中被解释为字符串的比较而不是数字的比较,因此结果是错误的。
例三:编写一个脚本mkfs.sh,功能: 显示root账户下的文件信息,之后建立一个aa目录,在aa目录中新建一个文件bb.txt,并修改为可执行的权限
[root@server ~]# vim mkfs.sh
# Author: xx # Email: xx@163.com # Organization: http://www.xx.com/xx/ # Created Time : 2023-12-10 18:40:07 # Description: ############################################################## ls /root mkdir /root/aa touch /root/aa/bb.sh chmod a+x /root/aa/bb.txt
[root@server ~]# bash mkfs.sh
例四: 编写脚本mkd.sh,从键盘输入一个目录名,判断是否存在,不存在则创建
方法一:
[root@server ~]# vim mkd.sh
# 任务:编写脚本mkd.sh,从键盘输入一个目录名,判断是否存在,不存在则创建read -p "请输入一个目录名称:" dir[ -d /$dir ] && ls -l $dir && echo "目录$dir存在" || echo "$dir目录不存在,创建目录$dir" && mkdir /$dirls /
测试:查看根目录下是否有haha目录
方法二:
#!/bin/bash # 任务:编写脚本mkd.sh,从键盘输入一个目录名,判断是否存在,不存在则创建read -p "请输入一个目录名称:" dir[ -d /$dir ] && ls -l $dir && echo "目录$dir存在" || (echo "$dir目录不存在,创建目录$dir" ; mkdir /$dir;ls -l /)
注意: ";" 链接括号中多个子语句,从左到右一次执行
测试:查看根目录下是否有haha目录
例5: 编写脚本sum1.sh,从键盘读入俩个整数存储到x,y中,计算其和值后输出
方法一:(缺点:每输入一次(无论对错)就要执行一次.sh文件)
read -p "输入整数x:" x read -p "输入整数y:" y [[ $x =~ ^[0-9]+$ ]] && [[ $y =~ ^[0-9]+$ ]] && echo "输出整数x+y的结果;$[x+y]" || echo ">请输入数字"
方法二:
read -p "输入整数x:" x read -p "输入整数y:" y if [ -n $x -a -n $y ] # 判断是否为空 thenif [[ $x =~ ^[0-9]+$ && $y =~ ^[0-9]+$ ]] # 判断是否为数字thensum=$[x+y]echo "俩参数和为$sum"elseecho "请输入数字"fi elseecho "请输入有效数字"fi
例6: 编写脚本user1.sh,显示所有账户,选择一个账户输入,若id为0则表示管理员,否则表示其他账户
首先取出账户名:paswd文件的第列
[root@server ~]# cat /etc/passwd | cut -d ":" -f1
去重并排序:
[root@server ~]# cat /etc/passwd | cut -d ":" -f1 | sort -u
[root@server ~]# vim user2.sh
#!/bin/bashcat /etc/passwd |cut -d ":" -f1 | sort -u read -p "请输入账户名" name [ $(id -u $name) -eq 0 ] && echo "该账户为管理员" || echo "此账户为普通用户"
例7: 编写脚本line1.sh,统计/etc/sos/sos.conf文件中的空白行,若有空白行则显示行数,否则输出提示信息(空白行:行首行尾以及中间没有内容"^$"来表示空白行)
[root@server ~]# grep ^$ /etc/sos/sos.conf |wc -l
4 # 输出文件中的空白行 (使用正则表达式中的^:行首,$:行尾表示。)[root@server ~]# vim line1.sh
#!bin/bash num=$( grep ^$ /etc/sos/sos.conf |wc -l )if [ $num -gt 0 ] then echo "/etc/sos/sos.conf有$num行"echo "行好为:"grep -n ^$ /etc/sos/sos.conf else echo “该文件没有空白行” fi
扩展:将以上服务业务扩展到任何可读文件
read -p "输入文件路径:" filenamenum=$( grep ^$ /$filename |wc -l )if [ $num -gt 0 ] thenecho "/$filename有$num行"echo "行号为:"grep -n ^$ /$filename elseecho “该文件没有空白行” fi
1.5.逻辑操作符
1.5.1.符号
逻辑操作符
在[]和 test 中使用的操作符 在[[ ]] 和(())中使用的操作符 说明 -a && and,与,两端都为真,则结果为真 -o || or,或,两端有一个为真,则结果为真 ! ! not,非,两端相反,则结果为真
1.5.2.例:
root@server ~]# [ -f /etc/passwd -a -f /etc/services ] && echo 1 || echo 0
1
[root@server ~]# [ -f /etc/passwd -o -f /etc/services ] && echo 1 || echo 0
1[root@server ~]# [ -f /etc/passwd -a -d /etc/services ] && echo 1 || echo 0
0
[root@server ~]# [ -f /etc/passwd -o -d /etc/services ] && echo 1 || echo 0
1
1.6.命令分隔符
cmd1;cmd2 以独立的进程依次执行cmd1和cmd2
(cmd1;cmd2) 在同一进程中依次执行cmd1和cmd2
cmd1&cmd2 cmd1和cmd2同时执行,分属于不同的进程
cmd1&&cmd2 当cmd1为真时,则执行cmd2
cmd1llcmd2 当cmd1不为真时,则执行cmd2
cmd& 后台执行
例:
判断一个账户是否存在,若账户fox10不存在,则添加账户
[root@server ~]# id fox10 &> /dev/null && echo "fox10已存在" || useradd fox10
# 第一次执行命令无返回值,原因,系统判断无fox10因此添加账户ox10
[root@server ~]# id fox10 &> /dev/null && echo "fox10已存在" || useradd fox10
fox10已存在 # 由于上一次执行命令时以添加fox10因此显示已存在注意: &> /dev/null 表示将左侧命令执行的正确(或错误)输出到“黑洞”即不显示到屏幕
相关文章:

shell条件测试
目录 1.1.用途 1.2.基本语法 1.2.1.格式: 1.2.2.例 1.3 文件测试 1.4.整数测试 1.4.1.作用 1.4.2.操作符 1.4.3.示例: 1.5.逻辑操作符 1.5.1.符号 1.5.2.例: 1.6.命令分隔符 1.1.用途 为了能够正确处理Shell程序运行过程中遇到的各种情况&am…...

python在线读取传奇列表,并解析为需要的JSON格式
python在线读取传奇列表,并解析为需要的JSON格式,以下为传奇中使用的TXT列表格式, [Server] ; 使用“/”字符分开颜色,也可以不使用颜色,支持以前的旧格式,只有标题和服务器标题支持颜色 ; 标题/颜色代码(0-255)|服务器标题/颜色代码(0-255)|服务器名称|服务器IP|服务器端…...

【docker 】 安装docker(centOS7)
官网 docker官网 github源码 官网 在CentOS上安装Docker引擎 官网 在Debian上安装Docker引擎 官网 在 Fedora上安装Docker引擎 官网 在ubuntu上安装Docker引擎 官网 在RHEL (s390x)上安装Docker引擎 官网 在SLES上安装Docker引擎 最完善的资料都在官网。 卸载旧版本 …...

智能网联汽车场景数据图像标注要求及方法
智能网联汽车场景数据图像标注要求及方法 1 范围 本标准规定了智能网联汽车场景数据图像中交通参与者、交通信号灯、交通标志、交通标线、可行驶区域、光照条件、遮挡截断情况7类元素的标注要求及方法。 本标准适用于智能网联汽车图像数据标注。 2 规范性引…...

四. 基于环视Camera的BEV感知算法-BEVFormer
目标 前言0. 简述1. 算法动机&开创性思路2. 主体结构3. 损失函数4. 性能对比5. BEVFormerv2总结下载链接参考 前言 自动驾驶之心推出的《国内首个BVE感知全栈系列学习教程》,链接。记录下个人学习笔记,仅供自己参考 本次课程我们来学习下课程第四章—…...

gin投票系统3
对应视频v1版本 1.优化登陆接口 将同步改为异步 原login前端代码: <!doctype html> <html lang"en"> <head><meta charset"utf-8"><title>香香编程-投票项目</title> </head> <body> <m…...

windows如何解决端口冲突(实用篇)
在项目设计中,环境配置成功点击运行瞬间,一大堆红爆出,8080端口占用,这个是很烦人的。。。 解决方式: 笨方法:一、查看所有端口实用情况(挨个扫) 按住【WINR】快捷键打开运行输入…...

「PPT 下载」Google DevFest Keynote | 复杂的海外网络环境下,如何提升连接质量
(全网都在找的《社交泛娱乐出海作战地图》,点击获取👆) 12 月 10 日,“Google DevFest 2023 上海站”大会如期在上海市东方万国宴会中心举办。延续过往的技术交流碰撞、前沿技术学习基调传统,本届大会聚焦行…...

Logstash输入Kafka输出Es配置
Logstash介绍 Logstash是一个开源的数据收集引擎,具有实时管道功能。它可以从各种数据源中动态地统一和标准化数据,并将其发送到你选择的目的地。Logstash的早期目标主要是用于收集日志,但现在的功能已经远远超出这个范围。任何事件类型都可…...

Bash脚本处理ogg、flac格式到mp3格式的批量转换
现在下载的许多音乐文件是flac和ogg格式的,QQ音乐上下载的就是这样的,这些文件尺寸比较大,在某些场合使用不便,比如在车机上播放还是mp3格式合适,音质这些在车机上播放足够了,要求不高。比如本人就喜欢下载…...

Android 依据Build相关信息判断机型
Android 依据Build相关信息判断机型 本文主要通过Build的相关信息获取机型,目前机型判断的较少,后续继续维护更新 public static String parseBuild() {StringBuilder sb new StringBuilder();String deriveFingerprint Build.FINGERPRINT;String manufacturer Build.MANU…...

2024年甘肃省职业院校技能大赛信息安全管理与评估赛项一阶段样题一
2024年甘肃省职业院校技能大赛高职学生组电子与信息大类信息安全管理与评估赛项样题一 竞赛需要完成三个阶段的任务,分别完成三个模块,总分共计 1000分。三个模块内容和分值分别是: 1.第一阶段:模块一 网络平台搭建与设备安全防…...

ARM:作业3
按键中断代码编写 代码: key_it.h #ifndef __KEY_IT_H__ #define __KEY_IT_H__#include "stm32mp1xx_gpio.h" #include "stm32mp1xx_exti.h" #include "stm32mp1xx_rcc.h" #include "stm32mp1xx_gic.h"void key1_it_config(); voi…...

基于OpenCV+CNN+IOT+微信小程序智能果实采摘指导系统——深度学习算法应用(含python、JS工程源码)+数据集+模型(二)
目录 前言总体设计系统整体结构图系统流程图 运行环境Python环境TensorFlow 环境Jupyter Notebook环境Pycharm 环境微信开发者工具OneNET云平台 相关其它博客工程源代码下载其它资料下载 前言 本项目基于Keras框架,引入CNN进行模型训练,采用Dropout梯度…...

*上位机的定义
上位机是指在分布式控制系统中,负责监控和控制下位机(也称为远程终端设备)的计算机或者计算机网络。它通常是一个高性能的计算设备,运行着特定的监控软件,用于实时监测、控制和管理下位机设备。 上位机负责与各个下位…...

架构LAMP
目录 1.什么是LAMP 2.LAMP组成及作用 3.搭建Apache httpd服务 4.编译安装mysqld 服务 5.编译安装PHP 解析环境 6.安装论坛 1.什么是LAMP LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web站点服务…...

vue实现浏览器不同分辨率下的不同样式,css的媒体查询与js判断当前浏览器宽度
前言: 实现实现浏览器不同分辨率下的不同样式的方法很多,这里整理两种,1个是css的媒体查询来实现,另一个是js判断当前浏览器的宽度,然后动态给他添加不同的class名,或者动态用style修改样式,添加…...

CentOS7 安装包 MariaDB 10.4.x
CentOS7 安装包 MariaDB 10.4.x 统一 MariaDB安装包 https://www.alipan.com/s/fvLg3gN7LPX 提取码: nh81 打开「阿里云盘」...

js中箭头函数简单介绍
1.箭头函数是 ES6 中新增的一种函数定义方式, 简单举例为 var nameA function(a){return a} 可以用箭头函数简化为 var nameA a >a; 返回的是你输入的值 比如 nameA(5) 返回的就是5 nameA(2) 返回的就是2 以上两个表达的含义是一样的。nameA为名字 2.…...

分布式ID服务实践
背景 分布式场景下需要一个全局 ID 来标识唯一性,比如在单数据库时通过表唯一主键即可实现唯一 ID,分库分表时就需要全局唯一 ID。 业务对唯一 ID 的要求如下: 全局唯一性 不能出现重复的 ID 号,既然是唯一标识,这…...

YOLOv8改进 | 2023主干篇 | 利用RT-DETR特征提取网络PPHGNetV2改进YOLOv8(超级轻量化精度更高)
一、本文介绍 本文给大家带来利用RT-DETR模型主干HGNet去替换YOLOv8的主干,RT-DETR是今年由百度推出的第一款实时的ViT模型,其在实时检测的领域上号称是打败了YOLO系列,其利用两个主干一个是HGNet一个是ResNet,其中HGNet就是我们…...

C现代方法(第26章)笔记——<stdarg.h>、<stdlib.h>和<time.h>标准库
文章目录 第26章 <stdarg.h>、<stdlib.h>和<time.h>标准库26.1 <stdarg.h>: 可变参数26.1.1 调用带有可变参数列表的函数26.1.2 v...printf函数26.1.3 v...scanf函数(C99) 26.2 <stdlib.h>: 通用的实用工具26.2.1 数值转换函数26.2.1.1 测试数值…...

CCKS2023-面向金融领域的主体事件检测-亚军方案分享
赛题分析 大赛地址 https://tianchi.aliyun.com/competition/entrance/532098/introduction?spma2c22.12281925.0.0.52b97137bpVnmh 任务描述 主体事件检测是语言文本分析和金融领域智能应用的重要任务之一,如在金融风控领域往往会对公司主体进行风险事件的检测…...

Linux下通过find找文件---通过修改时间查找(-mtime)
通过man手册查找和-mtime选项相关的内容 man find | grep -A 3 mtime # 这里简单介绍了 -mtime ,还有一个简单的示例-mtime n Files data was last modified n*24 hours ago. See the comments for -atime to understand how rounding affects the interpretati…...

图文教程:stable-diffusion的基本使用教程 txt2img(多图)
之前我介绍了SD的安装过程,那么这篇将介绍怎么使用SD 使用模型 SD安装好之后,我们只有一个默认的模型。这个模型很难满足我们的绘图需求,那么有2种方法。 1是自己训练一个模型(有门槛)2是去网站上找一个别人练好的模…...

VisualSVN Server的安装全过程
目录 背景: 安装过程: 步骤1: 步骤2: 步骤3: 步骤4: 步骤5: 安装出现的bug: 问题: 解决办法: 总结: 背景: VisualSVN Server 是一款免费的 SVN (Subversion) 服务器软件,…...

Python 进阶(十六):二进制和ASCII码的转换(binascii 模块)
大家好,我是水滴~~ 本文详细介绍了Python中的binascii模块及其使用方法。通过binascii模块,我们可以方便地进行二进制和ASCII字符串之间的转换操作。文章中包含大量的示例代码,希望能够帮助新手同学快速入门。 《Python入门核心技术》专栏总…...

CSS Grid布局入门:从零开始创建一个网格系统
CSS Grid布局入门:从零开始创建一个网格系统 引言 在响应式设计日益重要的今天,CSS Grid布局系统是前端开发中的一次革新。它使得创建复杂、灵活的布局变得简单而直观。本教程将通过分步骤的方式,让你从零开始掌握CSS Grid,并在…...

java--Collection的遍历方式
1.迭代器概述 迭代器是用来遍历集合的专用方式(数组没有迭代器),在java中迭代器是Iterator。 2.Collection集合获取迭代器的方法 3.Iterator迭代器中的常用方法 4.增强for循环 ①增强for可以用来遍历集合或数组。 ②增强for遍历集合,本质就是迭代器遍…...

现代雷达车载应用——第2章 汽车雷达系统原理 2.2节
经典著作,值得一读,英文原版下载链接【免费】ModernRadarforAutomotiveApplications资源-CSDN文库。 2.2 汽车雷达架构 从顶层来看,基本的汽车雷达由发射器,接收器和天线组成。图2.2给出了一种简化的单通道连续波雷达结构[2]。这…...