Shell字符串处理之${}
1、获取字符串长度
#!/bin/bash
CNBUGS='Hello World!'
echo $CNBUGS
echo ${#CNBUGS}
[root@localhost shell]# bash var.sh
Hello World!
12
2、字符串切片
#!/bin/bash
CNBUGS="Hello World!"
#截取hello字符串
echo ${CNBUGS:0:5}
#截取最后一个字符
echo ${CNBUGS:(-1)}
#截取从倒数第三个字符后的两个字符
echo ${CNBUGS:(-3):2}
[root@localhost shell]# sh var.sh
Hello
!
ld
3、替换字符串
#!/bin/bash
CNBUGS="Hello Hello World!"
#替换Hello为HELLO
echo ${CNBUGS/Hello/HELLO}
#将全部Hello替换为HELLO
echo ${CNBUGS//Hello/HELLO}
#替换正则匹配为空
CNBUGS=123abc
echo ${CNBUGS//[^0-9]}
echo ${CNBUGS//[0-9]/}
HELLO Hello World!
HELLO HELLO World!
123
abc
4、字符串截取
备注:
- #去掉左边,最短匹配模式
- ##最长匹配模式
- %去掉右边,最短匹配模式
- %%最长匹配模式
#/bin/bash
URL="https://www.cnbugs.com/post-3735.html"
#以//为分隔符截取右边字符串
echo ${URL#*//}
#以/为分隔符截取右边字符串
echo ${URL##*/}
#以//为分隔符截取左边字符串
echo ${URL%%//*}
#以/为分隔符截取左边字符串
echo ${URL%/*}
#以.为分隔符截取左边
echo ${URL%.*}
#以.为分隔符截取右边
echo ${URL##*.}
www.cnbugs.com/post-3735.html
post-3735.html
https:
https://www.cnbugs.com
https://www.cnbugs.com/post-3735
html
5、变量状态赋值
#!/bin/bash
#如果变量为空返回hello world
CNBUGS=
echo ${CNBUGS:-'hello world!'}
#如果变量不为空返回hello woorld
CNBUGS='HELLO'
echo ${CNBUGS:+'hello world!'}
#如果变量为空就重新赋值
CNBUGS=
echo ${CNBUGS:=hello}
echo $CNBUGS
#如果变量为空就将信息输出stderr
CNBUGS=
echo ${CNBUGS:?value is null}
hello world!
hello world!
hello
hello
b.sh:行14: CNBUGS: value is null
6、字符串颜色

格式
\033[1;31;40m # 1是显示方式,可选。31是字体颜色。40m是字体背景颜色。\033[0m # 恢复终端默认颜色,即取消颜色设置。
#!/bin/bash
#字体颜色
for i in {31..37};do
echo -e "\033[$i;40mHelloworld!\033[0m"
done
#背景颜色
for i in {41..47};do
echo -e "\033[47;${i}mHelloworld!\033[0m"
done
#显示方式
for i in {1..8};do
echo -e "\033[$i;31;40mHelloworld!\033[0m"
done

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。