课时136:变量进阶_变量实践_高级赋值
2 变量进阶
2.1 变量实践
2.1.1 高级赋值
学习目标
这一节,我们从 基础知识、简单实践、小结 三个方面来学习
基础知识
简介
所谓的高级赋值,是另外的一种变量值获取方法,这里涉及到更多我们学习之外的一些shell内置变量格式,其实这部分的内容主要还是在字符串的基础上,如何更精细的获取特定的信息内容:主要涉及到的内容样式如下:
字符串截取按分隔符截取: # 右 % 左${file#/} 删除匹配结果,保留第一个/右边的字符串${file##/} 删除匹配结果,保留最后一个/右边的字符串${file%/} 删除匹配结果,保留第一个/左边的字符串${file%%/} 删除匹配结果,保留最后一个/左边的字符串注意:匹配内容的正则表达式,尽量不要出现特殊边界字符
字符串替换${file/dir/path} 把第一个dir替换成path:/path1/dir2/dir3/n${file//dir/path} 把所有dir替换成path:/path1/path2/path3/n${file/#dir/path} 将从左侧能匹配到的dir,则替换成 path 然后返回;否则直接返回 ${var}。${file/%dir/path} 将从右侧能匹配到的dir,则替换成 path 然后返回;否则直接返回 ${var}。注意:如果匹配内容使用的是正则符号,应该注意正则符号的写法
字符串转换${file^^} 把file中的所有小写字母转换为大写${file,,} 把file中的所有大写字母转换为小写
简单实践
实践1-字符串截取
字符串截取示例
[root@localhost ~]# string=abc12342341
[root@localhost ~]# echo ${string#a*3}
42341
[root@localhost ~]# echo ${string#c*3}
abc12342341
[root@localhost ~]# echo ${string#*c1*3}
42341
[root@localhost ~]# echo ${string##a*3}
41
[root@localhost ~]# echo ${string%3*1}
abc12342
[root@localhost ~]# echo ${string%%3*1}
abc12
字符串截取赋值
[root@localhost ~]# file=/var/log/nginx/access.log
[root@localhost ~]# filename=${file##*/}
[root@localhost ~]# echo $filename
access.log
[root@localhost ~]# filedir=${file%/*}
[root@localhost ~]# echo $filedir
/var/log/nginx
实践2-字符串替换
字符串替换示例
[root@localhost ~]# str="apple, tree, apple tree, apple"
[root@localhost ~]# echo ${str/apple/APPLE}
APPLE, tree, apple tree, apple
[root@localhost ~]# echo ${str//apple/APPLE}
APPLE, tree, APPLE tree, APPLE
[root@localhost ~]# echo ${str/#apple/APPLE}
APPLE, tree, apple tree, apple
[root@localhost ~]# echo ${str/%apple/APPLE}
apple, tree, apple tree, APPLE使用正则的情况下,代表尽可能多的匹配
[root@localhost ~]# file=dir1@dir2@dir3@n.txt
[root@localhost ~]# echo ${file/#d*r/DIR}
DIR3@n.txt
[root@localhost ~]# echo ${file/%3*/DIR}
dir1@dir2@dirDIR
实践3-字符串转换
[root@localhost ~]# str="apple, tree, apple tree, apple"
[root@localhost ~]# upper_str=${str^^}
[root@localhost ~]# echo ${upper_str}
APPLE, TREE, APPLE TREE, APPLE
[root@localhost ~]# lower_str=${upper_str,,}
[root@localhost ~]# echo ${lower_str}
apple, tree, apple tree, apple
小结
相关文章:
课时136:变量进阶_变量实践_高级赋值
2 变量进阶 2.1 变量实践 2.1.1 高级赋值 学习目标 这一节,我们从 基础知识、简单实践、小结 三个方面来学习 基础知识 简介 所谓的高级赋值,是另外的一种变量值获取方法,这里涉及到更多我们学习之外的一些shell内置变量格式,其实这部分…...
牛客网刷题 | BC99 正方形图案
目前主要分为三个专栏,后续还会添加: 专栏如下: C语言刷题解析 C语言系列文章 我的成长经历 感谢阅读! 初来乍到,如有错误请指出,感谢! 描述 KiKi学习了循环&am…...
启动小程序F12窗口管理器
如何使用小程序F12任务窗口管理器教学流程 一、引言 小程序的开发者们,是否希望有一款工具能帮助你们更好地管理任务窗口? 二、前置准备 观看视频教程 访问B站视频链接:https://www.bilibili.com/video/BV1aa4y197UU/?spm_id_from333.9…...
完全背包之零钱兑换I
上次分享完完全背包问题的解决思路后,这次分享一道和完全背包有关的leetcode题。 零钱兑换 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。计算并返回可以凑成总金额所需的最少的硬币个数。如果…...
Flutter 中的 FittedBox 小部件:全面指南
Flutter 中的 FittedBox 小部件:全面指南 在Flutter的丰富布局小部件中,FittedBox扮演着一个独特而重要的角色。它是一个灵活的组件,用于将子组件的大小和位置适应到给定的约束条件中。本文将提供FittedBox的全面指南,帮助你了解…...
Java的线程的使用
一.两种创建线程的方式 1.继承Thread类(匿名内部类) 创建方式: 1.定义一个子类继承Thread,重写run方法 2.创建子类对象, 3.调用子类对象的start方法(启动还是执行的run方法) 优缺点&#x…...
行为型模式 (Python版)
模板方法模式 """案例:写简历内容:最近有个招聘会,可以带上简历去应聘了。但是,其中有一家公司不接受简历,而是给应聘者发了两张公司自己定制的简历表,分别是A类型的简历表和B类型的简历表…...
vscode:如何解决”检测到include错误,请更新includePath“
vscode:如何解决”检测到include错误,请更新includePath“ 前言解决办法1 获取includePath路径2 将includePath路径添加到指定文件3 保存 前言 配置vscode是出现如下错误: 解决办法 1 获取includePath路径 通过cmd打开终端,输入如下指令&a…...
区块链会议投稿资讯CCF A--USENIX Security 2025 截止9.4、1.22 附录用率
会议名称:34th USENIX Security Symposium CCF等级:CCF A类学术会议 类别:网络与信息安全 录用率:2023年接收率29%,2024录用的区块链相关文章请查看 Symposium Topics System security Operating systems security …...
vue实现可拖拽移动悬浮球
封装悬浮球组件,文件名s-icons.vue <template><div ref"icons" class"icons-container" :style"{ left: left px, top: top px }"><slot></slot></div> </template> <script> export …...
立体库堆垛机的精密构造与功能(收藏版)
导语 大家好,我是社长,老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》 在现代物流仓储体系中,堆垛机以其高效、精准的操作能力,成为了自动化存储与检索系统的关键所在。 其复杂的构造和多样化的…...
算法提高之你能回答这些问题吗
算法提高之你能回答这些问题吗 核心思想:线段树 用sum,lmax,rmax,tmax分别存线段长度,最大前缀,最大后缀,最大子段和 #include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N 500010;int n,m;int w[N];s…...
C++-指针
在C中,指针是至关重要的组成部分。它是C语言最强大的功能之一,也是最棘手的功能之一。 指针具有强大的能力,其本质是协助程序员完成内存的直接操纵。 指针:特定类型数据在内存中的存储地址,即内存地址。 指针变量的定…...
Three.js 研究:2、如何让动画线性运动
1、默认的动画含有加速度并非线性的 制作好的动画很明显是非线性的,这是一个运动环,为了让环运行线性进行如下设置。 2、设置动画成为线性动画...
z3-加法器实验
补码器加减法,运算方法简介 我们要知道什么是补码的加法,我们为什么要用补码的加法? 补码的加法其实就是将两个补码形式的二进制数字直接相加,处理的时候忽略超出固定位数的进位。补码的加法运算和无符号二进制数的加法操作一样&…...
解决git克隆项目出现fatal无法访问git clone https://github.com/lvgl/lvgl.git
Windows 11系统 报错 $ git clone https://github.com/lvgl/lvgl.git Cloning into lvgl... fatal: unable to access https://github.com/lvgl/lvgl.git/: Failed to connect to github.com port 443 after 21141 ms: Couldnt connect to server 解决方法 git运行这两段代码…...
Vue中引入组件需要哪三步
在Vue中引入组件通常需要以下三步: 导入组件:首先,你需要在父组件中导入你想要使用的子组件。这通常是通过ES6的import语法完成的。 注册组件:接下来,你需要在父组件中注册这个子组件。这可以通过components选项完成&…...
到底该用英文括号还是中文括号?
这篇博客写的还挺详细的,不错。...
一个普通双非女生的秋招之路
大家好,我是小布丁。 先简单地做个自我介绍: 我今年本科毕业于某双非院校(属于那种没什么人听说过的小学校),学的是计算机专业,英语四级水平(没办法,六级确实没过)。我本…...
一个模型用了几层神经网络怎么算?
有权重参数的层算作一层,没有权重参数的就是参数不更新,不能称之为一层 有权重:卷积层、全连接层 没有权重的层:激活函数层、池化层 即数卷积层和全连接层的个数,就是这个模型用了几层神经网络。...
Intv_ai_mk11 C语言接口调用教程:为嵌入式设备注入AI对话能力
Intv_ai_mk11 C语言接口调用教程:为嵌入式设备注入AI对话能力 1. 引言:为什么嵌入式设备需要AI对话能力 想象一下,你的智能家居设备不仅能执行命令,还能像朋友一样自然交流;工业设备在出现异常时,能用人类…...
Guohua Diffusion效果展示:生成纯正国风水墨画,保留传统艺术韵味
Guohua Diffusion效果展示:生成纯正国风水墨画,保留传统艺术韵味 1. 国风绘画的魅力重现 当传统国画艺术遇上现代AI技术,Guohua Diffusion为我们打开了一扇通往古典美学的新大门。这款专为国风绘画设计的生成工具,能够完美再现水…...
Realistic Vision V5.1 使用Linux命令管理生成任务:进程监控与日志分析
Realistic Vision V5.1 使用Linux命令管理生成任务:进程监控与日志分析 如果你已经成功部署了Realistic Vision V5.1,并且习惯了在命令行下工作,那么恭喜你,你已经站在了高效管理AI图像生成任务的门槛上。对于开发者来说…...
玩一玩微软的 bit 模型:BitNet. 一个 CPU 就能跑起来的大模型讣
一、 什么是 AI Skills:从工具级到框架级的演化 AI Skills(AI 技能) 的概念最早在 Claude Code 等前沿 Agent 实践中被强化。最初,Skills 被视为“工具级”的增强,如简单的文件读写或终端操作,方便用户快速…...
知识资产沉睡率高达68%?重构AI原生研发知识平台的4步激活法,立即见效
第一章:知识资产沉睡率的现状与AI原生重构必要性 2026奇点智能技术大会(https://ml-summit.org) 企业知识资产正经历一场静默的流失危机。据Gartner 2025年《组织记忆健康度报告》显示,平均47%的内部文档、会议纪要、代码注释、实验日志和领域专家隐性经…...
关于power bi计算列使用 符号“>“出现报错的问题
解决办法很简单那就是转变逻辑,配合NOT或者"-"之类的方法,使用符号"<"。问题重新:在筛选器中对计算列使用了">"号,视觉对象报错。将">"修改为"<",发现…...
第三十三课:LIF神经元模型与SpikingJelly实战解析
1. LIF神经元模型:从生物启发的数学原理说起 第一次看到LIF(Leaky Integrate-and-Fire)神经元时,我脑海中浮现的是中学物理课上那个总在漏电的电容器。这种神经元模型之所以被称为"漏电积分放电",正是因为它…...
源荷储再创新!小论文轻松发!基于雨流计数法的源-荷-储双层协同优化配置研究Matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…...
【技术解析】BAN——双线性注意力网络在视觉问答中的高效应用与优化
1. 双线性注意力网络(BAN)为何能成为视觉问答的利器 视觉问答(VQA)任务需要同时理解图像内容和自然语言问题,这对模型的跨模态交互能力提出了极高要求。传统协同注意力机制虽然能分别捕捉视觉和文本特征,但…...
Qt桌面应用集成Edge内核:保姆级WebView2环境配置与NuGet包本地化部署指南
Qt桌面应用集成Edge内核:WebView2环境配置与本地化部署实战 在Windows平台下开发Qt应用时,传统的Qt WebEngine模块虽然功能完备,但存在启动缓慢、内存占用高、编译体积大等问题。许多开发者开始寻求更轻量高效的替代方案,而微软E…...
