linux里${}的用法

2-2、linux脚本-shell $() $(()) $[] $[[]] ${} 使用语法 合理使用这些语法结构可以大幅提升 Shell 脚本的灵活性和可读性,尤其在处理复杂逻辑和字符串操作时。是几种常见的语法结构,它们分别用于不同的场景。在 Linux Shell 脚本中,:变量扩展、字符串处理或默认值设置。:执行命令并将结果替换到当前位置。:执行算术运算并返回结果。 阅读详情

为了完整起见,我这里再用一些例子加以说明 ${ } 的一些特异功能:
假设我们定义了一个变量为:
file=/dir1/dir2/dir3/my.file.txt
我们可以用 ${ } 分别替换获得不同的值:
${file#/}:拿掉第一条 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt
${file##
/}:拿掉最后一条 / 及其左边的字符串:my.file.txt
${file#.}:拿掉第一个 . 及其左边的字符串:file.txt
${file##
.}:拿掉最后一个 . 及其左边的字符串:txt
${file%/}:拿掉最后条 / 及其右边的字符串:/dir1/dir2/dir3
${file%%/
}:拿掉第一条 / 及其右边的字符串:(空值)
${file%.}:拿掉最后一个 . 及其右边的字符串:/dir1/dir2/dir3/my.file
${file%%.
}:拿掉第一个 . 及其右边的字符串:/dir1/dir2/dir3/my

记忆的方法为:

是去掉左边(在鉴盘上 # 在 $ 之左边)

% 是去掉右边(在鉴盘上 % 在 $ 之右边)

单一符号是最小匹配﹔两个符号是最大匹配。

${file:0:5}:提取最左边的 5 个字节:/dir1
${file:5:5}:提取第 5 个字节右边的连续 5 个字节:/dir2
我们也可以对变量值里的字符串作替换:
${file/dir/path}:将第一个 dir 提换为 path:/path1/dir2/dir3/my.file.txt
${file//dir/path}:将全部 dir 提换为 path:/path1/path2/path3/my

#!/bin/bash

extens=(".c" ".cpp" ".h" ".hpp")
 EXTENSION=.cpp
 echo "${extens[@]/$EXTENSION/}" #若EXTENSION的内容包含于extens里,则把其从extens里去掉
 echo "${extens[@]}"

输出
gilee@gilee:~/Desktop$ ./11.sh
.c .h .hpp
.c .cpp .h .hpp

如何解除Uniaccess管控?? 🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。 阅读详情

相关推荐

openEuler 快速入门

openEuler 是一个专注于企业领域的 Linux 发行版,广泛应用于服务器、云计算和边缘计算场景。最初由华为开发,现在由 Open Atom Foundation 进行开发和管理。Open Atom Foundation 是中国第一个开源软件基金会,得到了华为、阿里巴巴、腾讯、百度等知名企业的支持,并且中国信息通信部也是该基金会的一部分。可以将 openEuler 看作是 Red Hat 或 SUSE Linux 的等价物,但它与 SUSE Linux 更为相似。

HuaweiLab_Peach的博客 2053

Linux 变量操作符“${}“

"${}"是对变量进行处理的一个函数,它可以对变量值进行取长度,截取,替换等操作,也可用于RCE漏洞拼接绕过

Elite的博客 5227

智能驾驶域控(ADCU)方案介绍

本文主要对智能驾驶域控(ADCU)方案相关知识进行总结,以加深理解,及方便后续查漏补缺。

liuxu324的博客 1573

linux下${}、$()、$[]、$(())、[]、[[]]、(())的作用及用法说明

linux下${}、$()、$[]、$(())、[]、[[]]、(())的作用及用法说明

z19861216的博客 1万+

【软件使用】Calibre部分提参的实战技巧与常见问题解析

本文详细解析了Calibre部分提参(Partial PEX)的实战技巧,重点介绍了如何利用HCELL与XCELL文件高效排除已知模块,实现精准的寄生参数提取,从而快速定位后仿真中的时序与信号完整性问题。文章涵盖了从图形界面到命令行的完整操作流程,并提供了常见问题(如时钟失真、模块“消失”)的深度Debug指南与最佳实践,助力芯片设计工程师提升验证效率。

yhn456789的博客 1027

从零到一:华为iMaster NCE-Campus部署中的Euler OS与FusionInsight深度解析

本文深入解析华为iMaster NCE-Campus部署中Euler OS与FusionInsight的关键技术要点,包括RAID配置、网络绑定技术、安装避坑指南及性能调优方案。通过实战经验和详细配置示例,帮助工程师提升部署效率与系统稳定性,确保华为企业级解决方案的高效运行。

f6g7h8i9j的博客 547

linux之${}符号详解

linux之${}符号详解 ${ }通常用于划定变量名的边界,例如 [root@linuxforliuhj ~]# a=java [root@linuxforliuhj ~]# aa=linux [root@linuxforliuhj ~]# echo "$aa" linux [root@linuxforliuhj ~]# echo "${a}a" javaa [root@linuxforliuhj ~]# echo "$a" java [root@linuxforliuhj ~]# 当执行echo

qq_43382735的博客 1万+

ESP32S3新手避坑:用IDF5.0驱动GT911触摸屏,我踩过的三个雷都给你填平了

本文详细解析了在ESP32S3开发板上使用IDF5.0驱动GT911触摸屏时常见的三大问题:软重启失效、状态寄存器读取异常和初始化参数差异。通过逻辑分析和硬件调试工具,提供了针对性的解决方案和优化建议,帮助开发者高效完成触摸屏驱动开发。

weixin_42567497的博客 297

linux之${ }、[ ]、$( )、$[ ]、$(( ))、[[ ]]、(( ))的作用

linux常用符号1、\${ }与\$2、[ ]与test3、$()和``4、\$[ ]和\$(( ))5、[[ ]]6、(( )) 1、${ }与$ $与${ }都是用来引用变量的,只不过${ }可以指定变量边界,也可用于对字符串变量进行截取等处理,具体用法可参考如下blog linux之${}符号详解 2、[ ]与test [ ]是test命令的另一种形式,用于判断某个表达式的返回值是0或者非0,常用于if命令的判断条件 test $a == "linux" 等于 [ $a == "linux" ]

qq_43382735的博客 1万+

AI驱动的数据完整性:ECC到S/4HANA迁移

在SAP ECC到S/4HANA的迁移过程中,数据完整性验证是最复杂且关键的挑战之一。本文介绍了一个全面的AI驱动的端到端数据完整性框架,用于对账事务数据并验证数百万条主数据记录和事务记录的完整性。该框架结合了模式映射、自然语言提示到SQL生成、基于LLM的解决方案、大规模数据对账的数据完整性工具、基于云的测试数据管理以及实时Power BI仪表板,为开发者提供了一个可重复、可扩展的工作流程,确保ERP迁移过程中的数据质量。

简简单单Onlinezuozuo 1172

AI翻译工具自动翻译日语视频生成srt中文字幕,支持离线轻松生成任意日语视频字幕!可选择支持显卡模式和cpu模式低显存也能用

【AI离线字幕神器:日语视频一键转中文字幕】推荐一款基于Faster-Whisper的本地化字幕工具,可离线生成日语视频的中文字幕(.srt格式),支持CPU/GPU加速处理。实测1小时视频最快4-5分钟完成翻译,无需联网保护隐私。操作简单只需拖拽文件,支持批量处理音频(mp3/wav)和视频(mp4/mkv)文件,还能自定义输出格式和参数调整。特别适合需要观看无字幕日语资料的用户,堪称技术宅必备神器。下载地址附后,包含详细使用教程和参数配置说明。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1万+

linux shell 脚本 $的常见用法、case语句、整数数值运算、字符串判断、数值判断、逻辑判断、linux 里的计算器

linux shell 脚本 $的常见用法、case语句、整数数值运算、字符串判断、数值判断、逻辑判断、shell 中[ ] 与 [[ ]] 的区别 、单引号和双引号的区别

m0_64287200的博客 465

MIKE21 MIKE软件 教程 0.1 软件介绍与教学目录

MIKE 21是一个专业的工程软件包,用于模拟河流、湖泊、河口、海湾、海岸及海洋的水流、波浪、泥沙及环境问题。在MIKE Zero集成平台中,主要有MIKE11,MIKE21,MIKE3三类软件,分别对应一维,二维,三维的水动力模型模拟。同时还包括MIKE HYDRO,MIKE FLOOD等其他功能,各软件的具体介绍请参考DHI公司的官方文档,在此不作赘述。学习过程中,对于任何操作界面的疑问,建议大家仔细阅读帮助文档(在有疑问的界面按F1调出),同时官方也提供了对应的线上和线下教学服务(免费+收费)。

Hello Word 2万+

关于${ }的用法-Linux shell编程小记

在shell编程中,当遇到需要将某个字符串进行替换或者裁剪时,我们首先想到的是sed和awk,但是sed和awk的功能都太强大了,当只是简单的对某个字符串进行替换裁剪时,我们可以使用${}来完成。裁剪的格式为${变量#(##)|%(%%)正则表达式}替换的格式为 ${变量/|//被替换字符/替换字符}

Jerry00713的博客 849

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

linux脚本中 $,shell脚本中$的用处

1.$0 获取当前执行的shell脚本的文件名,包括路径。[root@usr001 ~]# vi test.sh[root@usr001 ~]# cat test.shecho $0[root@usr001 ~]# sh test.shtest.sh[root@usr001 ~]# pwd/root[root@usr001 ~]# sh /root/test.sh/root/test.sh[roo...

weixin_42200791的博客 274

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Linux中的$符号的三种常见用法

本文总结了Linux中的$符号的各种用法 用法一: 显示脚本参数($0、$?、$*、$@、$#、$$、$!)(本质上属于变量替换) $0:就是该bash文件名,个位数的,可直接使用数字,但两位数以上,则必须使用 {} 符号来括住,如${10}. $?:是上一指令的返回值,成功是0,不成功是1。一般来说,UNIX(linux) 系统的进程以执行系统调用exit() 来结束的。这个回传值就是s...

统木木的博客 13万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

$(dirname $0)

查看公司的java部署脚本,发现第一行使用了$(dirname $0)这个写法,由于不是很了解这个写法的作用,于是百度下用法。 作用 在linux中,dirname命令可以返回文件所在的目录。$0 表示当前动行的命令名。 因此此写法的作用为: 切换到 脚本 所在的目录 在shel脚本中,$的作用有很多,下面是网上抄录的一些功能 命令替换 在bash中,$( )与(反引号)都是用来作命令替换的。 [...

陆多多的专栏 3万+

linux命令前的$是什么意思,linux中$符号的基础用法总结

linux使用版本: CentOS 7[root@azfdbdfsdf230lqdg1ba91 ~]# cat /etc/redhat-releaseCentOS Linux release 7.4.1708 (Core)[root@azfdbdfsdf230lqdg1ba91 ~]# uname -aLinux azfdbdfsdf230lqdg1ba91 3.10.0-693.2.2.el7....

weixin_30805181的博客 8106

Linux Bash 中 $? 的详细用法

Bash (Bourne Again SHell) 是使用最广泛的 SHell 脚本语言之一,因为它与 Unix 和 Linux 系统兼容。它提供了许多内置函数和变量,使脚本编写更高效,更不容易出错。其中一个变量是 `$?`, 它是 Bash 脚本错误处理的一个组成部分。这个特殊变量保存最后一个执行命令的退出状态,这对于根据命令成功或失败控制脚本流至关重要。

xiaochong0302的博客 1390

linux中$0、$?、$*、$@、$#、$$、

本文总结了Linux中的$符号的各种用法 用法一: 显示脚本参数($0、$?、$*、$@、$#、$$、$!)(本质上属于变量替换) $0:就是该bash文件名,个位数的,可直接使用数字,但两位数以上,则必须使用 {} 符号来括住,如${10}. $?:是上一指令的返回值,成功是0,不成功是1。一般来说,UNIX(linux) 系统的进程以执行系统调用exit() 来结束的。这个回传值就是status值。回传给父进程,用来检查子进程的执行状态。一般指令程序倘若执行成功,其回传值为 0;失败为 1。

hzp666的博客 1万+

linux shell中$0,$?,$!等的用法

变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。 $@ 所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" …...

tugangkai的专栏 1万+

Linux $符号的常见用法

Linux 中 $接数字,$接小括号,$接大括号的用法

DaydreamHippo的博客 1万+

Linux Shell中‘$‘符号的各种用法

文章目录前言引用变量引用脚本或函数参数上一次命令的返回值执行并获取命令输出表达式求值获取当前进程ID后台运行的最后一个进程ID获取shell选项 前言 在Shell中$是一个特殊的字符,在不同场景中有不同的用法。 引用变量 使用$直接引用变量,包括循环变量。 root@iZ2ze43t8c5urajez7ws4eZ:~# x=1 root@iZ2ze43t8c5urajez7ws4eZ:~# echo $x 1 双引号"括起来的字符串支持变量插值。 root@iZ2ze43t8c5urajez

钢铁烈阳--非花非雾 8899

Linux Shell 中的 $():命令替换的核心用法

核心功能:命令替换——执行括号内的命令,用“标准输出结果”替代$()本身;常用场景:变量赋值(获取命令结果)、循环数据源(遍历文件/命令输出)、嵌套使用(二次处理结果);与反引号区别$()支持嵌套、可读性好,推荐优先使用;反引号需转义,仅兼容老旧 Shell;注意事项结果会按 IFS 拆分,需注意空白字符和特殊字符(如只捕获 stdout,stderr 需用2>&1重定向才能捕获;嵌套不宜过深,复杂逻辑建议拆分成中间变量。

CharlesYuangc的博客 1333

Linux——$1、$#、$@、$0、$1、$2

$1在shell中称为“位置参数”,表示传入的第1个参数(第1个入参)。 test -z $1 是一个判断表达式,用于判断$1的值是否为空字符串。 若为空,则结果为true;否则为false。 常用的shell中带有$符号的几个变量的含义: 区别:@ * 相同点:都是引用所有参数 不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数(分别存储在1 2 3)则"*" 等价于 “...

u012114090的博客 3万+

Linux bash shell 脚本,$0、$1、$2、$#、$@、$*、$? 等参数含义和用法

Linux bash shell 脚本

风雨雷电的专栏 1096
上一篇: malloc与free的问题:munmap_chunk(): invalid pointer,无效指针
下一篇: wxWidget方法创建多级动态菜单
杨小乐coder
博客等级 码龄7年 11粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值