Shell脚本字符串应用

记录: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日

你可能感兴趣的:(L02-Shell基础,Shell脚本字符串应用,运维,Shell脚本)