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

3 shell脚本编程

Shell脚本简介shell脚本是什么shell脚本是由shell命令组成的文本文件。利用shell命令加shell语法配合正则表达式、管道命令、数据流从定向等写成的纯文本脚本文件。以.sh为后缀为什么要写它1、自动话重复任务可以将重复性或复杂的任务自动化处理如批量重命名文件、定时备份数据、自动清理日志2、简化管理操作简化管理操作如定时执行、系统配置、监测等3、提高效率节省手动执行命令的时间特别是多步操作的时候4、可重用性可以多个项目重用只需简单修改5、跨平台兼容在Linux/Unix/macOS系统中通用但需注意语法差异典型应用场景1、日常运维定时备份数据库或文件结合cron使用。监控磁盘空间自动清理旧文件。检查服务状态异常时发送告警邮件。2、开发辅助自动编译代码、运行测试用例。批量处理数据如日志分析、格式转换。3、部署与配置一键安装软件如Docker、Nginx。初始化服务器环境配置用户、防火墙等。4、数据处理结合grep、awk、sed处理文本文件。提取日志中的错误信息并生成报告。shell编写编写步骤需求分析、命令测试、脚本编写、测试调优1 #!/bin/bash #指定解释器。标明使用的shell版本跟自己用的版本一致 路径等不能错否者解释器错误 2 3 echo hello world! #打印执行方式解释性语言不需要编译bash **.sh source **.sh ./**.sh //要先赋权Shell脚本变量变量介绍变量来源于数学是计算机语言中能储存计算结果或能表示值的抽象概念。 变量可以通过变量名访问。在指令式语言中变量通常是可变的。在一个脚本周期内,其值可以发生改变的量变量的作用存放特定参数用来存放系统和用户需要使用的特定参数值变量名使用固定的名称由系统预设或用户定义变量值能够根据用户设置、系统环境的变化而变化命名要求分类变量操作定义变量通常使用全大写变量方便识别等号左右两侧不能有空格1 #!/bin/bash 2 3 COUNT3 #变量创建 4 echo $COUNT 5 6 unset COUNT #变量取消 7 echo $COUNTset //变量查看shell中变量本身只存储字符串小数整数都按字符串形式存储所以对于小数运算需要借助外部工具如bc、awk取值变量的值如果有空格需要使用单引号或双引号包括。如:test“hello world!”。双引号:允许通过$符号引用其他变量值。实现转义其中的变量引用会被替换为变量值单引号:单引号括起来的内容都是普通字符。不能转义,$被视为普通字符其中的变量引用不会被替换为变量值而保持源字符串反撇号: 命令替换提取命令执行后的输出结果不是运算表达式的结果 和$(…)作用相同1 #!/bin/bash 2 3 COUNT3 4 echo $COUNT 5 6 echo $COUNT #显示“ ”里运算的结果 7 echo $COUNT #原样显示‘ ’里的内容 8 9 #Aecho $COUNT #错误写法 10 Aecho $COUNT #将命令执行的结果赋值给变量这个命令要有确定值 11 B$(echo $COUNT) 12 echo $A 13 echo $B[rootlocalhost ~]$ namesc #定义变量name 的值是sc [rootlocalhost ~]$ echo $name $name #如果输出时使用单引号则$name原封不动的输出 [rootlocalhost ~]$ echo $name sc #如果输出时使用双引号则会输出变量name的值 sc [rootlocalhost ~]$ echo date 2018年10月21日星期一18:16:33 CST #反引号括起来的命令会正常执行 [rootlocalhost ~]$ echo date date #但是如果反引号命令被单引号括起来那么这个命令不会执行―date会被当成普通字符输出 [rootlocalhost ~]$ echo date 2018年10月21日星期一18:14:21 CST #如果是双引号括起来那么这个命令又会正常执行 wlwwlw-virtual-machine:~/text$ echo date date wlwwlw-virtual-machine:~/text$ echo date 2026年 04月 17日 星期五 10:44:10 CST echo Value: ${var} # 用{}来明确变量边界 比如 varHello varifyWorld echo Value: ${var}ify # 这表示引用 var 的值并加上 ify 使用 {} 来明确变量的边界避免混淆 原文链接https://blog.csdn.net/w918589859/article/details/108752592变量值叠加变量需要用双引号包含$变量名或用${变量名}包含变量名。[rootlocalhost ~]$ test123 [rootlocalhost ~]$ test$test456 [rootlocalhost ~]$ echo $test 123456 #叠加变量test变量值变成了123456 [rootlocalhost ~]$ test${test}789 [rootlocalhost ~]$ echo $test 123456789 #再叠加变量test变量值编程了123456789数组a(元素1 元素2 元素3 ...) 创建数组元素间用空格隔开echo $a默认显示数组a的第一个元素echo ${a[0]} 显示数组中第一个元素以此类推echo ${a[-1]} 显示数组中最后一个元素a[-2]:倒数第二个echo ${a[*]} 和echo ${a[]} 显示数组中所有元素echo ${#a[]} 显示数组中元素的个数echo ${a[]:起始元素id:元素个数]} 显示数组中以起始元素为首的指定个数的元素注意这里起始元素id不能为负值unset a[n] 删除数组中的第n个元素unset a 删除a这个数组1 #!/bin/bash 2 #數組 3 a(1 2 3 4 5) #创建 4 echo $a #默认取第一个元素 5 echo ${a[*]} #取所有元素 6 echo ${a[]} 7 echo ${#a[*]} #元素个数 8 echo ${#a[]} 9 echo ${a[2]} #取指定下标的元素 10 a[2]8 #给指定下标赋值 11 echo ${a[*]} 12 echo ${a[]:1:3} #取下标为1开始的三个元素 13 unset a[2] #删指定下标的元素 14 echo ${a[]} 15 unset a #删数组环境变量使用export声明的变量即是环境变量删除环境变量查询env与setset可以查看所有变量env只能查看环境变量常用环境变量$USER 表示用户名称$HOME 表示用户的宿主目录$LANG 表示语言和字符集$PWD 表示当前所在工作目录$PATH 表示可执行用户程序的默认路径只读变量变量值不允许修改重新赋值的情况 无法使用 unset删除 删除的最快方法是重启终端。用readonly来定义1 #!/bin/bach 2 3 readonly COUNT3 4 COUNT5 #报错 5 echo $COUNT 6 unset COUNT #报错位置变量和预定义变量$0 与键入的命令行一样包含脚本文件名$1,$2,……$9 ${10} 分别包含第一个到第十个命令行参数$# 包含命令行参数的个数$ 包含所有命令行参数“$1,$2,……$9”$* 包含所有命令行参数是一个整体“$1,$2,……$9”$? 包含前一个命令的退出状态正常退出值为0非正常退出值为非01~255之间导致退出的因素不同值不同$$ 包含正在执行进程的ID号1 #!/bin/bash 2 3 echo $0 4 echo $1 5 echo $2 6 echo $3 7 echo $4 8 echo $5 9 echo $6 10 11 echo $# #统计传入的参数 12 echo $* #显示全部参数 13 echo $ #显示全部参数实际上两者有区别 14 echo $? #上一条命令的退出状态成功是0 15 echo $$ #Pid号shell语句Shell 程序由零或多条shell语句也就是Shell命令构成。 shell语句包括三类:说明性语句 功能性语句 结构性语句。说明性语句(注释行)以#号开始到该行结束不被解释执行功能性语句(命令)标准输入readread从标准输入读入一行,阻塞, 并赋值给后面的变量,其语法为:read varread var1 var2 var3//把读入行中的第一个单词(word)赋给var1, 第二个单词赋给var2 ……把其余所有的词赋给最后一个变量.。输入的多个数据由空格隔开1 #!/bin/bash 2 3 read -p 提示语句val1 val2 4 echo $val1 $val2-p “ ” #提示语句-t 5 #5秒内不输入自动结束5内没有输入完没按回车也自动结束-s #输入时不显示输入内容算术运算命令expr主要用于进行简单的整数运算包括加()、减-、乘\*)、整除/和求模%等操作。1 #!/bin/bash 2 3 read val1 val2 4 echo $val1 $val2 5 6 ADDexpr $val1 $val2 7 echo $ADD 8 ADDexpr $val1 - $val2 9 echo $ADD 10 ADDexpr $val1 \* $val2 11 echo $ADD 12 ADDexpr $val1 / $val2 13 echo $ADD等号前后不能有空格要夹运算符号前后要加空格直接返回计算结果在命令行中直接打印出来测试三种对象test字符串 整数 文件属性 每种测试对象都有若干测试操作符字符串测试s1 s2 测试两个字符串的内容是否完全一样s1 ! s2 测试两个字符串的内容是否有差异-z s1 测试s1 字符串的长度是否为0-n s1 测试s1 字符串的长度是否不为0test命令的退出状态码条件成立正test返回0条件不成立假test返回非0通常是11 #!/bin/bash 2 3 val1hello 4 val2hello 5 val3world 6 #成立为0不成立为1 7 test $val1 $val2 8 echo $? #0 9 10 test $val1 $val3 11 echo $? #1 12 13 test $val1 ! $val3 14 echo $? #0 15 16 val1 17 test -z $val1 18 echo $? #0 19 20 val1haha 21 test -z $val1 22 echo $? #1 23 24 val1haha 25 test -n $val1 26 echo $? #0 27 28 val1 29 test -n $val1 30 echo $? #0 31 32 val1haha 33 test -n $val1 #-n要加“ ”所有都最好加 34 echo $? #0 35 36 val1 37 test -n $val1 38 echo $? #1整数测试a -eq b 测试a 与b 是否相等a -ne b 测试a 与b 是否不相等a -gt b 测试a 是否大于ba -ge b 测试a 是否大于等于ba -lt b 测试a 是否小于ba -le b 测试a 是否小于等于b文件测试-e name 测试一个文件是否存在-d name 测试name 是否为一个目录-f name 测试name 是否为普通文件-L name 测试name 是否为符号链接-r name 测试name 文件是否存在且为可读-w name 测试name 文件是否存在且为可写-x name 测试name 文件是否存在且为可执行-s name 测试name 文件是否存在且其长度不为0f1 -nt f2 测试文件f1 是否比文件f2 更新f1 -ot f2 测试文件f1 是否比文件f2 更旧test命令测试的条件成立时, 命令返回值为(0)否则返回值为(1).结构性语句结构性语句主要根据程序的运行状态、输入数据、变量的取值、控制信号以及运行时间等因素来控制程序的运行流程。 主要包括 条件测试语句两路分支 多路分支语句 循环语句 循环控制语句等分枝语句if 表达式then 命令表 //条件成立fiif 表达式then //条件成立。。。else //条件不成立。。。fiif 条件语句then。。。elif 条件语句then。。。fi表达式为真执行命令表假执行fi后语句。if-fi成对使用if语句判断的依据是所跟命令的退出状态码决定分支状态码为0→ 条件为“真”执行then后面的命令表。状态码为非 0→ 条件为“假”跳过then部分或执行else/elif部分。注意要和C的0为假非0为真区别1 #!/bin/bash 2 3 read -p input a filename: file 4 5 #test -e $file 6 #echo $? #之前的判断法 7 8 #if test -e $file #这个形式也可以 9 if [ -e $file ] #[ ]与条件语句要有空格 10 then 11 echo $file exist 12 echo *********** 13 echo *********** 14 echo *********** 15 else 16 echo $file is not exist 17 echo *********** 18 echo *********** 19 echo *********** 20 fi一个if对应一个then1 #!/bin/bash 2 3 read -p input a filename: file 4 5 if [ -f $file ] 6 then 7 echo $file is a file 8 elif [ -d $file ] 9 then 10 echo $file is a dir 11 fi例判断用户是否存在用户信息保存在/etc/passwd下grep “用户内容” /etc/passwd //查找命令grep wlw /etc/passwd头一个是用户名“^wlw”限定头一个用户不存在就不会打印通过判断是否有打印来确定用户是否存在wc //统计命令wc -l //统计行数利用管道grep “^wlw” /etc/passwd | wc -l //统计查找命令输出结果有几行为1表示找到这个用户为0表示没有这个用户通过shell脚本实现1 #!/bin/bash 2 3 read -p input a ures: U 4 RETgrep $U /etc/passwd | wc -l 5 if [ $RET -eq 1 ] 6 then 7 echo exist 8 else 9 echo not exist 10 fi多路分枝语句case....esac模式匹配着字符串变量的可能取值1 #!/bin/bash 2 3 read -p input yes or no: val 4 case $val in 5 yes | y) #输入yes或y都执行同一个语句块 6 echo input yes 7 ;; 8 YES | Y) 9 echo input YES 10 ;; 11 no) 12 echo input no 13 esac例成绩分级1 #!/bin/bash 2 3 read -p input score: val 4 5 #if [ $val -gt 100 ] || [ $val -lt 0 ] #两种方式都可以 6 if [ $val -gt 100 -o $val -lt 0 ] 7 then 8 echo input error val 9 exit 10 fi 11 12 valexpr $val / 10 13 case $val in 14 8 | 9 | 10) 15 echo A 16 ;; 17 6 | 7) 18 echo B 19 ;; 20 *) 21 echo C 22 esac-gt //大于 -lt //小于 -a 与 -o //或 //非循环语句for的用法for 变量 in 表 //变量依次从表里面拿值拿一次循环一次拿完为止do命令块done1 #!/bin/bash 2 3 filenamels 4 for file in $filename #所有文件组成的文件表 5 do 6 if [ -f $file ] 7 then 8 echo $file is a file 9 elif [ -d $file ] 10 then 11 echo $file is a dir 12 else 13 echo ***** 14 fi 15 done$ $* //命令行传的所有参数表1 #!/bin/bash 2 3 for n in $ 4 do 5 echo $n 6 done1 #!/bin/bash 2 3 for n in $* 4 do 5 echo $n 6 done1 #!/bin/bash 2 3 for n in $ 4 do 5 echo $n 6 done1 #!/bin/bash 2 3 for n in $* 4 do 5 echo $n 6 done$和$*的区别“$”还是挨个参数表“$*”是一个整体C语言形式1 #!/bin/bash 2 3 for ((i 0; i 5; i)) 4 do 5 echo $i 6 donefor里头echo命令会自动换行while的用法结构while 命令或表达式 //为真便执行命令表do命令表done1 #!/bin/bash 2 3 i0 4 while [ $i -lt 5 ] #方式1 5 do 6 echo $i 7 iexpr $i 1 8 done 1 #!/bin/bash 2 3 i0 4 while (( i 5 )) #方式2 5 do 6 echo $i 7 iexpr $i 1 8 done循环控制语句break和continebreak //跳出一层循环break n //跳出n层循环contine //跳过本次循环的语句去判断下一次循环contine n //跳过本次以及往后的n-1次循环去判断后面的循环Shell函数定义function name //关键字和函数名{代码块[return] //可有可无}1 #!/bin/bash 2 3 function fun() 4 { 5 echo hello woed 6 return 0 7 } 8 9 fun函数调用方式1value_namefunction_name [arg1 arg2...]命令置换是把函数内的标准输出的内容赋给变量方式2function_name [arg1 arg2....]echo $?$?是获取函数返回值的状态1 #!/bin/bash 2 3 function fun() 4 { 5 echo hello woed 6 grep wlw /etc/passwd 7 return 0 8 } 9 fun1 #!/bin/bash 2 3 function fun() 4 { 5 echo hello woed 6 grep wlw /etc/passwd 7 return 0 8 } 9 reafun1 #!/bin/bash 2 3 function fun() 4 { 5 echo hello woed 6 grep wlw /etc/passwd 7 return 0 8 } 9 retfun 10 echo $ret1 #!/bin/bash 2 3 function fun() 4 { 5 echo hello woed 6 grep wlw /etc/passwd 7 return 0 8 } 9 fun 10 echo $?1 #!/bin/bash 2 3 function fun() 4 { 5 echo hello woed 6 grep wlw /etc/passwd 7 return 2 8 } 9 fun 10 echo $?函数传参1 #!/bin/bash 2 3 function fun() 4 { 5 echo hello woed 6 grep $1 /etc/passwd 7 echo $2 8 echo $3 9 return 2 10 } 11 fun wlw 5 9 12 echo $?$1 $2 $3 就是参数替换的位置函数调用后直接跟参数值就行函数内变量的作用域1 #!/bin/bash 2 3 function fun() 4 { 5 val10 6 echo $val 7 return 2 8 } 9 fun 10 echo **$val**含数内的变量是全局变量要想变局部变量加local修饰或采用命令替换调用采用命令替换调用那么val就不是全局变量了1 #!/bin/bash 2 3 function fun() 4 { 5 val10 6 echo $val 7 return 2 8 } 9 retfun #采用命令替换调用那么val就不是全局变量了 10 echo $ret 11 echo **$val**

相关文章:

3 shell脚本编程

Shell脚本简介shell脚本是什么?shell脚本是由 shell命令组成 的文本文件。利用shell命令加shell语法,配合正则表达式、管道命令、数据流从定向等写成的纯文本脚本文件。以.sh为后缀为什么要写它?1、自动话重复任务:可以将重复性或…...

MSYS2安装GCC后,你的PATH环境变量可能踩了这些坑(附正确配置方法)

MSYS2安装GCC后PATH环境变量的深度避坑指南 当你在Windows上通过MSYS2安装GCC工具链时,PATH环境变量的配置可能是最容易被忽视却又最关键的一步。许多开发者按照教程安装完成后,在命令行或IDE中调用gcc时仍然会遇到各种问题——命令未找到、版本冲突、工…...

5分钟快速上手:Windows平台APK安装器完整指南

5分钟快速上手:Windows平台APK安装器完整指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否想在Windows电脑上直接运行安卓应用,却不想…...

告别永恒之蓝阴影:安全迁移Samba服务到非标端口的实战记录

企业级Samba服务安全迁移指南:从445端口到高位端口的完整实践 当企业IT管理员在云服务器上部署Samba服务时,往往会遇到一个令人头疼的问题——445端口被运营商封锁。这背后其实源于几年前席卷全球的"永恒之蓝"漏洞事件,该漏洞利用S…...

Lenovo Legion Toolkit:拯救者笔记本的终极性能控制中心

Lenovo Legion Toolkit:拯救者笔记本的终极性能控制中心 【免费下载链接】LenovoLegionToolkit Lightweight Lenovo Vantage and Hotkeys replacement for Lenovo Legion laptops. 项目地址: https://gitcode.com/gh_mirrors/le/LenovoLegionToolkit 想要完全…...

题解:AcWing 1192 奖金

本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。 欢迎大家订阅我的专栏:算法…...

Unity 引擎中的 RuntimeInitializeOnLoadMethod 属性解析

在 Unity 游戏开发中,有许多细微但非常重要的特性,其中之一就是 RuntimeInitializeOnLoadMethod 属性。这篇博文将详细探讨这个属性的工作原理,并结合实例解释其在实际开发中的应用。 背景介绍 Unity 引擎虽然主要使用 C# 进行开发,但其核心是基于 C 和 C++ 构建的。这意…...

直播卡顿、首开慢、延时高?别慌!一份超全的排查手册(附FFmpeg/WebRTC实战参数)

直播质量优化全链路实战:从现象定位到参数调优 直播过程中突然出现的卡顿、首开延迟或音画不同步,往往让技术团队如临大敌。不同于点播的事后处理,直播问题的排查需要工程师在分钟级内完成根因定位与修复。本文将构建一套从现象分析到参数调优…...

awesome-engineering-team-management薪酬与股权谈判:如何获得公平的补偿方案

awesome-engineering-team-management薪酬与股权谈判:如何获得公平的补偿方案 【免费下载链接】awesome-engineering-team-management 👔 How to transition from software development to engineering management 项目地址: https://gitcode.com/gh_m…...

DeepSeek-OCR效果对比展示:传统OCR vs 多模态大模型在复杂版式上的差异

DeepSeek-OCR效果对比展示:传统OCR vs 多模态大模型在复杂版式上的差异 1. 引言:从文字识别到文档理解的跨越 在日常工作中,我们经常需要处理各种文档:扫描的合同、复杂的报表、手写的笔记,甚至是古籍文献。传统的OC…...

题解:洛谷 AT_abc399_e [ABC399E] Replace

本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。 欢迎大家订阅我的专栏:算法…...

用旧手机和ESP8266-01做个智能开关:手把手教你用Arduino和巴法云实现远程控制

旧手机改造智能家居中枢:零成本玩转ESP8266与Arduino联动 家里抽屉角落那台积灰的旧安卓手机,除了换脸盆还能做什么?去年搬家时,我偶然发现五年前的小米6居然还能开机,充电器插上半小时后——电量从3%顽强爬升到78%。这…...

抖音评论采集完整指南:三步轻松获取完整评论数据

抖音评论采集完整指南:三步轻松获取完整评论数据 【免费下载链接】TikTokCommentScraper 项目地址: https://gitcode.com/gh_mirrors/ti/TikTokCommentScraper 还在为无法批量获取抖音评论而烦恼吗?想要分析热门视频的用户反馈却无从下手&#x…...

超实用的移动端设计语言系统:VUX视觉设计指南

超实用的移动端设计语言系统:VUX视觉设计指南 【免费下载链接】vux Mobile UI Components based on Vue & WeUI 项目地址: https://gitcode.com/gh_mirrors/vu/vux VUX是一套基于Vue和WeUI的移动端UI组件库,为开发者提供了丰富的移动端界面设…...

告别单片机!纯硬件方案驱动RDA5807FP收音机模块,两个机械按键实现搜台与音量调节

纯硬件驱动RDA5807FP收音机模块:用两个机械按键实现全功能控制 在电子设计领域,追求极简主义往往能带来意想不到的突破。当大多数工程师习惯性地为每个项目配备单片机时,我们是否思考过:某些简单功能是否真的需要软件参与&#x…...

终极虚拟手柄驱动:ViGEmBus如何彻底改变Windows游戏控制器兼容性

终极虚拟手柄驱动:ViGEmBus如何彻底改变Windows游戏控制器兼容性 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus ViGEmBus是一款革命性的Windows…...

终极PrivateGPT批量部署指南:多实例管理与资源分配的完整方案

终极PrivateGPT批量部署指南:多实例管理与资源分配的完整方案 【免费下载链接】privateGPT Interact with your documents using the power of GPT, 100% privately, no data leaks 项目地址: https://gitcode.com/GitHub_Trending/pr/privateGPT PrivateGPT…...

如何彻底告别城通网盘下载限速:3种创新方案对比分析

如何彻底告别城通网盘下载限速:3种创新方案对比分析 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 还在为城通网盘那令人抓狂的下载速度而烦恼吗?ctfileGet 是一个开源工具&…...

低代码≠低质量,R 4.5分析工具开发避坑手册,从原型到生产环境部署全流程拆解

第一章:低代码≠低质量:R 4.5分析工具开发的认知重构长久以来,“低代码”常被误读为“简化版编程”或“牺牲可维护性的快捷方式”,尤其在统计分析领域,开发者习惯性将 R 视为必须手写完整函数、手动管理依赖与环境的“…...

从VBA到Python:一个老工程师的HFSS脚本自动化升级之路(踩坑与收获)

从VBA到Python:一位资深工程师的HFSS自动化改造实战 十年前,当我第一次在HFSS中录制VBA脚本时,那种解放双手的兴奋感至今记忆犹新。但随着项目复杂度呈指数级增长——从简单的参数扫描到需要集成机器学习优化算法,从单一模型处理到…...

用HLS在Zynq上实现图像缩放IP:从720P到1080P,一个工程搞定OV5640摄像头适配

Zynq平台HLS图像缩放实战:从OV5640采集到HDMI输出的全链路解析 在嵌入式视觉系统中,实时图像缩放是一个常见但极具挑战性的需求。当使用Xilinx Zynq SoC搭配OV5640摄像头时,开发者往往需要处理不同分辨率间的转换——比如将摄像头采集的720P图…...

s2-pro语音合成多语言支持:中英日韩混合文本语音生成实测教程

s2-pro语音合成多语言支持:中英日韩混合文本语音生成实测教程 1. 前言:为什么选择s2-pro 如果你正在寻找一款专业级的语音合成工具,s2-pro绝对值得你关注。作为Fish Audio开源的专业级语音合成模型镜像,它不仅支持常规的文本转语…...

从北邮网安复试笔记看考研面试:如何用一个月时间系统梳理计算机核心八股文?

计算机考研复试30天冲刺指南:从知识框架构建到面试话术设计 复试准备的核心逻辑与认知重构 考研复试本质上是一场多维能力评估,尤其在计算机/网络安全领域,考官关注的不仅是知识储备量,更是知识结构化能力与工程思维。传统"八…...

别再死记硬背了!用生活中的例子彻底搞懂C#类型转换(int/double/string实战)

用生活化场景拆解C#类型转换:从菜市场到成绩单的编程思维 每次走进菜市场,摊主们熟练地将整鸡切块、把活鱼去鳞的过程,像极了编程中的类型转换——我们需要根据不同的烹饪需求(业务逻辑),将原材料&#xff…...

第一篇博客,自己大学后的目标

a.我是涛同学,来自重庆,学校是岭南师范大学,是一所普通本科,但我的目标却不普通。b.学习编程的目标是为了掌握编程技能,是为了以后更好的生活,是为了拿到大厂offerc.我打算先学好python和cd.我打算每周花5个…...

目标检测新星YOLOv11:千问3.5-9B带你快速上手与实践

目标检测新星YOLOv11:千问3.5-9B带你快速上手与实践 1. YOLOv11效果惊艳亮相 目标检测领域又迎来一位重量级选手——YOLOv11。作为YOLO系列的最新成员,它在精度、速度和易用性上都带来了显著提升。用实际测试数据说话,在COCO数据集上&#…...

从控制台到文件:用Fortran读写数据的完整流程(含read/write参数详解)

从控制台到文件:用Fortran读写数据的完整流程(含read/write参数详解) 在科学计算和工程仿真领域,数据持久化是构建可靠工作流的关键环节。Fortran作为高性能计算的基石语言,其文件操作能力直接影响着科研数据的处理效率…...

如何快速掌握ExifToolGUI:新手到专家的完整图形化元数据编辑指南

如何快速掌握ExifToolGUI:新手到专家的完整图形化元数据编辑指南 【免费下载链接】ExifToolGui A GUI for ExifTool 项目地址: https://gitcode.com/gh_mirrors/ex/ExifToolGui 还在为照片元数据管理而烦恼吗?面对成千上万的旅行照片,…...

InstallWithOptions多语言支持:全球化应用开发最佳实践

InstallWithOptions多语言支持:全球化应用开发最佳实践 【免费下载链接】InstallWithOptions Simple-ish app using Shizuku to install APKs on-device with advanced options 项目地址: https://gitcode.com/gh_mirrors/in/InstallWithOptions InstallWith…...

CogVideoX-2b实战:手把手教你用文字生成高质量短视频,效果惊艳

CogVideoX-2b实战:手把手教你用文字生成高质量短视频,效果惊艳 1. 开启你的AI导演之旅 想象一下,你只需要输入一段文字描述,就能让AI自动生成一段高质量的视频。这不是科幻电影里的场景,而是CogVideoX-2b带给我们的现…...