shell变量子串

表达式说明
${parameter}返回变量$parameter的内容
${#parameter}返回变量$parameter内容的长度(按字符),也适用于特殊变量
${parameter:offset}在变量${parameter}中,从位置offset之后开始提取子串到结尾
${parameter:offset:length}在变量${parameter}中,从位置offset之后开始提取长度为length的子串
${parameter#word}从变量${parameter}开头开始删除最短匹配的word子串
${parameter##word}从变量${parameter}开头开始删除最长匹配的word子串
${parameter%word}从变量${parameter}结尾开始删除最短匹配的word子串
${parameter%%word}从变量${parameter}结尾开始删除最长匹配的word子串
${parameter/pattern/string}

使用string代替第一个匹配的pattern

${parameter//pattern/string}使用string代替所有匹配的pattern

转载于:https://www.cnblogs.com/yaowensheng/p/10807686.html

### 如何在 Shell 脚本中检查字符是否包含子串 #### 使用 `if` 和通配符匹配 一种简单的方式是在条件语句中利用双括号结构配合星号作为通配符来检测目标子串是否存在於源字符之中。这种方式直观易懂,适合初学者使用。 ```bash str="This is my test string search_string" subStr="search_" if [[ ${str} == *"${subStr}"* ]]; then echo "String '${str}' contains substring: '${subStr}'." else echo "String '${str}' does not contain substring: '${subStr}'." fi ``` 此代码片段展示了当 `${str}` 包含 `"${subStr}"` 时会输出相应的提示信息[^2]。 #### 正则表达式匹配 (`=~`) 对于更复杂的模式匹配需求,则可以采用正则表达式的语法来进行验证。这种方法不仅限于简单的子串查找,还可以处理更为复杂的情况,如大小写敏感度控制等特性。 ```bash #!/bin/bash str="aaabbbccc" sub_str="bbb" if [[ ${str} =~ ${sub_str} ]]; then echo "${str} 中包含 ${sub_str}" else echo "${str} 不包含 ${sub_str}" fi ``` 上述例子通过 `=~` 运算符实现了对两个变量间关系的有效评估,并据此作出逻辑分支的选择[^4]。 #### 字符操作函数法 另外还有一种思路是借助字符的操作函数完成任务,例如先尝试移除指定部分再对比剩余长度是否有改;或者直接调用某些工具命令(像 `grep`, `awk` 或者 `sed`),不过这超出了纯 Bash 内置功能范畴,在这里不做深入探讨[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值