【RHCA+】替换变量

" 目录:RHCA+ -> 5 Shell脚本 -> 6-5 替换变量 "

对变量的值进行修改后输出,切割字符串;语法格式:${变量名:操作符关键词}

|-------|--------------------------------------------|
| 操作符 | 作用 |
| # | 从头开始删除关键词前的内容,最短匹配 #在大括号最左边时,表示获取变量中字符串的长度 |
| ## | 从头开始删除关键词前的内容,最长匹配 |
| % | 从尾开始删除关键词后的内容,最短匹配 |
| %% | 从尾开始删除关键词后的内容,最长匹配 |
| /a/b | 从头开始将找到的第一个a替换为b |
| //a/b | 将所有的a替换为b |
| :a | 从a的后一个字符开始取值 |
| :a:b | 从a的后一个字符开始,取b长度的字符 |

root@wuzuniao \~# A=$(head -1 /etc/passwd) #将命令的执行结果赋给变量

root@wuzuniao \~# echo $A #输出变量的值

root:x:0:0:root:/root:/bin/bash

root@wuzuniao \~# echo ${A#*:} #删除从头开始匹配到的第一个关键词:前面的内容后输出

x:0:0:root:/root:/bin/bash

root@wuzuniao \~# echo ${A##*:} #删除从头开始匹配到的最后一个关键词:前面的内容后输出

/bin/bash

root@wuzuniao \~# echo ${A%:*} #删除从尾开始匹配到的第一个关键词:后面的内容后输出

root:x:0:0:root:/root

root@wuzuniao \~# echo ${A%%:*} #删除从尾开始匹配到的最后一个关键词:后面的内容后输出

root

root@wuzuniao \~# echo ${A/root/wuzuniao} #从头开始将找到的第一个root替换为wuzuniao

wuzuniao:x:0:0:root:/root:/bin/bash

root@wuzuniao \~# echo ${A//root/wuzuniao} #从头开始将找到的所有root替换为wuzuniao

wuzuniao:x:0:0:wuzuniao:/wuzuniao:/bin/bash

root@wuzuniao \~#

root@wuzuniao \~# A=/root/bin/aaa #定义变量

root@wuzuniao \~# echo ${A##*/} #截取最后一部分;获取文件名

aaa

root@wuzuniao \~# echo ${A##/} #匹配全部/,但只保留第一次匹配到的字符右边内容

root/bin/aaa

root@wuzuniao \~# echo ${A%/*} #从右往左匹配,保留第一次匹配到的字符左边的内容;获取文件对应目录

/root/bin

root@wuzuniao \~#

root@wuzuniao \~# A=abcdefg #定义变量

root@wuzuniao \~# echo ${#A} #查看变量有几个字符

7

root@wuzuniao \~# echo ${A:3} #从字符串第3位的后一位开始取值,获取剩下所有字串

defg

root@wuzuniao \~# echo ${A:3:2} #从字符串第3位的后一位开始取值,获取2位字串

de

root@wuzuniao \~#

相关推荐
大哥您好1 小时前
QEMU 11.1.2 多架构编译指南(x86_64 / aarch64 / riscv64)
linux·服务器
道满科技2 小时前
Function Calling 参数总出错?只修参数就行
linux·windows·python
Android系统攻城狮3 小时前
Linux Gstreamer深度解析之gst_audio_ring_buffer_prepare_read调用流程与实战(七十四)
linux·运维·服务器·gstreamer音视频·音视频进阶
我科绝伦(Huanhuan Zhou)3 小时前
Linux 通用压力测试脚本合集:磁盘 + 网络
linux·网络·压力测试
Soneswy5 小时前
Linux系统篇--重定向与文件操作命令
linux
有毒的教程5 小时前
Linux底层存储路由配
linux·运维·网络
Linux系统运维工程师_郭主任6 小时前
运维人还在被拒offer?现在能考的,只有 RHCE 10.0。
linux
自养Agent6 小时前
MCP Server Boundary Audit Report
linux·服务器·人工智能·windows·大模型·llm
Coisinier8 小时前
docker命令管理镜像及容器
linux·运维·nginx·docker·容器·操作系统
A心有千千结8 小时前
通过 SSH 反向代理让服务器借用本机网络访问 GitHub 的最佳实践
linux·服务器·网络·git·ssh·github