当前位置:网站首页>shell 字符串变量

shell 字符串变量

2022-06-25 13:32:00 响彻天堂丶

1 介绍

字符串(String)就是一系列字符的组合。字符串是 Shell 编程中最常用的数据类型之一(除了数字和字符串,也没有其他类型了)

2 字符串的三种格式

1 单引号方式
2 双引号方式, 推荐
3 不用引号方式

vim string.sh

#!/bin/bash
name1='james'
name2="kobe"
name3=paul

echo "name1: ${name1}"
echo "name2: ${name2}"
echo "name3: ${name3}"

在这里插入图片描述

3 字符串的三种格式区别

1 使用单引号’'的字符串
任何字符都会原样输出,在拼接字符串中使用变量是无效的。

2 由双引号" "包围的字符串
其中包含了变量,那么该变量会被解析得到值,而不是原样输出。

3 不被引号包围的字符串

不被引号包围的字符串中出现变量时也会被解析,这一点和双引号" "包围的字符串一样。
字符串中不能出现空格,否则空格后边的字符串会作为其他命令解析。

demo:

vim string.sh

#!/bin/bash
name="kobe"


echo '使用单引号打印 name: ${name}'
echo "使用双引号打印 name: ${name}"
echo  不适用引号打印name:${
    name}

在这里插入图片描述

4 获取字符串长度

4.1 语法

${#字符串变量名}

4.2 含义

获取字符串长度

#!/bin/bash
name="kobe"


echo '使用单引号打印 name: ${name}'
echo "使用双引号打印 name: ${name}"
echo  不适用引号打印name:${
    name}


echo "字符串长度为: ${#name}"

4.3 结果

在这里插入图片描述

5 字符串拼接

5.1 拼接方式

1 无符号拼接
2 双引号拼接

5.2 demo

#!/bin/bash
hello="hello"
world="world"
hello_world=${
    hello}${
    world}
echo "无符号拼接: ${hello_world}"

hello_world1="${hello}${world}"
echo "双引号拼接:${hello_world}"

在这里插入图片描述

6 字符串截取

6.1 语法

格式说明
${变量名:start:length}从 string 字符串的左边第 start 个字符开始,
向右截取 length 个字符。start从0开始
${变量名:start}从 string 字符串的左边第 start 个字符开始截取,直到最后。
${变量名:0-start:length}从 string 字符串的右边第 start 个字符开始,
向右截取 length 个字符。start从1开始, 代表右侧第一个字符
${变量名:0-start}从 string 字符串的右边第 start 个字符开始截取,直到最后。
${变量名#*chars}从 string 字符串左边第一次出现 *chars 的位置开始,
截取 *chars 右边的所有字符。
${变量名##*chars}从 string 字符串左边最后一次出现 *chars 的位置开始,
截取 *chars 右边的所有字符。
${变量名%chars*}从 string 字符串右边第一次出现 chars* 的位置开始,
截取 chars* 左边的所有字符。
${变量名%%chars*}从 string 字符串右边最后一次出现 chars* 的位置开始,
截取 chars* 左边的所有字符

6.2 demo

字符串"hello world"

从左侧第0个开始,向左截取2个字符
从左侧第5个开始,向左截取所有字符
从右侧第5个开始,向右截取2个字符
截取左边第一次出现字符l右边的所有字符
截取左边最后一次出现字符l右边的所有字符
截取右边第一次次出现字符l左边的所有字符
截取右边最后一次出现字符l左边的所有字符
#!/bin/bash
string="hello world"

echo "字符串为: ${string}"


str1="${string:0:2}"
echo "从左侧第0个开始,向左截取2个字符: ${str1}"

str2="${string:5}"
echo "从左侧第5个开始,向左截取所有字符: ${str2}"

str3="${string:0-5:2}"
echo "从右侧第5个开始,向右截取2个字符: ${str3}"

str4="${string#*l}"
echo "截取左边第一次出现字符l右边的所有字符: ${str4}"

str5="${string##*l}"
echo "截取左边最后一次出现字符l右边的所有字符: ${str5}"

str6="${string%l*}"
echo "截取右边第一次次出现字符l左边的所有字符: ${str6}"

str7="${string%%l*}"
echo "截取右边最后一次出现字符l左边的所有字符: ${str7}"

在这里插入图片描述

原网站

版权声明
本文为[响彻天堂丶]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_34125999/article/details/125439015