记录:440
场景:Shell脚本字符串应用。定义字符串、获取字符串长度、拼接字符串、截取字符串。
版本:CentOS Linux release 7.9.2009。
1.Shell脚本定义字符串(使用单引号或双引号或不使用引号)
1.1脚本
脚本名称:b2023060131.sh
脚本内容:
#!/bin/bash
echo '1.使用单引号定义字符串,单引号内容原样输出,变量不会被解析'
cityName='杭州'
provinceName='浙江的省会城市: ${cityName}'
echo ${provinceName}
echo '2.使用双引号""定义字符串,双引中变量会被解析'
cityName='杭州'
provinceName="浙江的省会城市: ${cityName}"
echo ${provinceName}
echo '3.不使引号定义字符串'
cityName=杭州
provinceName="浙江的省会城市: ${cityName}"
echo ${provinceName}
1.2执行与输出
执行命令:bash b2023060131.sh
执行结果:
[root@hadoop211 tutorial]# bash b2023060131.sh
1.使用单引号定义字符串,单引号内容原样输出,变量不会被解析
浙江的省会城市: ${cityName}
2.使用双引号""定义字符串,双引中变量会被解析
浙江的省会城市: 杭州
3.不使引号定义字符串
浙江的省会城市: 杭州
2.Shell脚本获取字符长度
2.1脚本
脚本名称:b2023060132.sh
脚本内容:
#!/bin/bash
echo '1.定义字符串'
cityInfo01="杭州是一个互联网城市"
cityInfo02='杭州是一个互联网城市'
cityInfo03=杭州是一个互联网城市
echo '2.获取字符串长度'
echo "cityInfo01的长度: ${#cityInfo01}"
echo "cityInfo02的长度: ${#cityInfo02}"
echo "cityInfo03的长度: ${#cityInfo03}"
2.2执行与输出
执行命令:bash b2023060132.sh
执行结果:
[root@hadoop211 tutorial]# bash b2023060132.sh
1.定义字符串
2.获取字符串长度
cityInfo01的长度: 10
cityInfo02的长度: 10
cityInfo03的长度: 10
3.Shell脚本拼接字符串
3.1脚本
脚本名称:b2023060133.sh
脚本内容:
#!/bin/bash
echo '1.定义字符串'
cityInfo01="杭州在浙江省."
cityInfo02='杭州是一个互联网城市.'
cityInfo03="杭州西湖是一个美丽的景区."
echo '2.使用变量直接拼接,中间不能有空格'
cityAll01=${cityInfo01}${cityInfo02}${cityInfo03}
echo "${cityAll01}"
echo '3.在双引号中,使用变量直接拼接,中间可以有空格'
cityAll02="${cityInfo01} ${cityInfo02} ${cityInfo03}"
echo "${cityAll02}"
echo '4.使用变量直接拼接,使用双引号连接,可以是空格或者字符串'
cityAll03=${cityInfo01}" "${cityInfo02}"杭州西溪湿地公园."${cityInfo03}
echo "${cityAll03}"
echo '5.在双引号中,使用变量直接拼接,中间可以有空格或者字符串'
cityAll04="${cityInfo01} ${cityInfo02} 杭州有城市阳台. ${cityInfo03}"
echo "${cityAll04}"
3.2执行与输出
执行命令:bash b2023060133.sh
执行结果:
1.定义字符串
2.使用变量直接拼接,中间不能有空格
杭州在浙江省.杭州是一个互联网城市.杭州西湖是一个美丽的景区.
3.在双引号中,使用变量直接拼接,中间可以有空格
杭州在浙江省. 杭州是一个互联网城市. 杭州西湖是一个美丽的景区.
4.使用变量直接拼接,使用双引号连接,可以是空格或者字符串
杭州在浙江省. 杭州是一个互联网城市.杭州西溪湿地公园.杭州西湖是一个美丽的景区.
5.在双引号中,使用变量直接拼接,中间可以有空格或者字符串
杭州在浙江省. 杭州是一个互联网城市. 杭州有城市阳台. 杭州西湖是一个美丽的景区.
4.Shell脚本截取字符串
4.1脚本
脚本名称:b2023060134.sh
脚本内容:
#!/bin/bash
echo '1.定义字符串变量tech'
tech='The Apache Hadoop project develops open-source software for reliable, scalable, distributed computing.'
echo "${tech}"
echo '2.使用${string: start: length}从左边start位置开始截取length个字符(start从0开始计数)'
tech01=${tech: 4: 13}
echo "输出截取的字符串: ${tech01}"
echo '3.使用${string: start}从左边start位置开始截取字符(start从0开始计数)'
tech02=${tech: 4}
echo "输出截取的字符串: ${tech02}"
echo '4.使用${string: 0-start: length}从右边数第start位置开始向右截取length个字符(start从1开始计数)'
tech03=${tech: 0-10: 9}
echo "输出截取的字符串: ${tech03}"
echo '5.使用${string: 0-start}从右边边start位置开始截取字符(start从1开始计数)'
tech04=${tech: 0-22}
echo "输出截取的字符串: ${tech04}"
echo '6.定义字符串变量tech_d'
tech_d='The Apache Hadoop project is open-source software. The Apache Hadoop software library is a framework.'
echo "${tech_d}"
echo '7.使用${string#*chars}截取指定字符串第一个匹配字符串的右边的字符串'
tech05=${tech_d#*Apache}
echo "输出截取的字符串: ${tech05}"
echo '8.使用${string##*chars}截取指定字符串最后一个匹配字符串右边的字符串'
tech06=${tech_d##*Apache}
echo "输出截取的字符串: ${tech06}"
echo '9.使用${string%%chars*}截取指定字符串第一个匹配字符串的左边的字符串'
tech07=${tech_d%%Hadoop*}
echo "输出截取的字符串: ${tech07}"
echo '10.使用${string%chars*}截取指定字符串最后一个匹配字符串左边的字符串'
tech08=${tech_d%Hadoop*}
echo "输出截取的字符串: ${tech08}"
4.2执行与输出
执行命令:bash b2023060134.sh
执行结果:
[root@hadoop211 tutorial]# bash b2023060134.sh
1.定义字符串变量tech
The Apache Hadoop project develops open-source software for reliable, scalable, distributed computing.
2.使用${string: start: length}从左边start位置开始截取length个字符(start从0开始计数)
输出截取的字符串: Apache Hadoop
3.使用${string: start}从左边start位置开始截取字符(start从0开始计数)
输出截取的字符串: Apache Hadoop project develops open-source software for reliable, scalable, distributed computing.
4.使用${string: 0-start: length}从右边数第start位置开始向右截取length个字符(start从1开始计数)
输出截取的字符串: computing
5.使用${string: 0-start}从右边边start位置开始截取字符(start从1开始计数)
输出截取的字符串: distributed computing.
6.定义字符串变量tech_d
The Apache Hadoop project is open-source software. The Apache Hadoop software library is a framework.
7.使用${string#*chars}截取指定字符串第一个匹配字符串的右边的字符串
输出截取的字符串: Hadoop project is open-source software. The Apache Hadoop software library is a framework.
8.使用${string##*chars}截取指定字符串最后一个匹配字符串右边的字符串
输出截取的字符串: Hadoop software library is a framework.
9.使用${string%%chars*}截取指定字符串第一个匹配字符串的左边的字符串
输出截取的字符串: The Apache
10.使用${string%chars*}截取指定字符串最后一个匹配字符串左边的字符串
输出截取的字符串: The Apache Hadoop project is open-source software. The Apache
以上,感谢。
2023年6月1日