linux shell字符串处理与初始化

本文详细介绍Shell脚本中字符串的各种操作技巧,包括截取、替换、判断等,并提供实用示例帮助理解。
摘要由CSDN通过智能技术生成

字符串截取

str1=abcdefghabcdefi12345
echo ${str1#*b} #从左向右截取第一个b后的字符串
echo ${str1##*b} #从左向右截取最后一个b后的字符串
echo ${str1%b*}#从右向左截取第一个b后的字符串
echo ${str1%%b*}#从右向左截取最后一个b后的字符串
echo ${str1:0:1}#从左右向截取第一个字符
echo ${str1:5:-1}#截取字符串第5个到最后一个
echo ${str1#a} #截取以a开头的字符串,注意必须是开头如果字符串是b那么无效需要在字符串后加*号
echo ${str1##a}#从变量$str1的开头, 删除最长匹配$a的子串,主要是匹配正则表达式
expr index $str1'123' #获取123字符串的索引位置
echo ${str1/123/456}#将字符串str1中的123替换成456 替换一次从左到右
echo ${str1//a/f} #将所有的a替换成f
echo ${str1/#abc/f}#将str1中以abc开头的替换成f
echo ${str1/%5/f}#将str1中以5结尾的替换成f





判断读取字符串值

${var} #变量var的值, 与$var相同
${var-DEFAULT} #如果var没有被声明, 那么就以$DEFAULT作为其值
${var:-DEFAULT}#如果var没有被声明, 或者其值为空, 那么就以$DEFAULT作为其值
${var=DEFAULT} #如果var没有被声明, 那么就以$DEFAULT作为其值
${var:=DEFAULT}#如果var没有被声明, 或者其值为空, 那么就以$DEFAULT作为其值
${var+OTHER}#如果var声明了, 那么其值就是$OTHER, 否则就为null字符串
${var:+OTHER}#如果var被设置了, 那么其值就是$OTHER, 否则就为null字符串

比较

[[ "a.txt" == a* ]]        # 逻辑真 (pattern matching)  
[[ "a.txt" =~ .*\.txt ]]   # 逻辑真 (regex matching)  
[[ "abc" == "abc" ]]       # 逻辑真 (string comparision)   
[[ "11" < "2" ]]           # 逻辑真 (string comparision), 按ascii值比较  

连接

s1="hello"  
s2="world"  
echo ${s1}${s2}   # 当然这样写 $s1$s2 也行,但最好加上大括号  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值