Skip to content

字符串

1. 定义和赋值

sh
# 使用双引号  
my_string="Hello, World!"  
# 使用单引号  
another_string='This is a string.'

单引号和双引号的区别:
单引号('):引用内容不会被解释,保留原样。
双引号("):可以解析变量和一些转义字符,如\n和\t。

2. 连接字符串

sh
str1="Hello"  
str2="World"  
combined="$str1, $str2!"  # 结果为 "Hello, World!"  
echo "$combined"

3. 获取字符串长度

使用${#string}来获取字符串长度:

sh
length=${#my_string}  
echo "Length: $length"  # 输出:Length: 13

4. 提取子串

使用${string:start:length}提取子串:

sh
sub_string=${my_string:0:5}  # 提取从索引0开始的5个字符  
echo "$sub_string"             # 输出:Hello

5. 字符串转大写

如果你需要将一个字符串分割成多个部分,可以使用read和管道:

sh
string="apple,banana,cherry"  
IFS=',' read -r -a array <<< "$string"  # 将字符串以逗号分割转换为数组  

# 遍历数组  
for fruit in "${array[@]}"; do  
    echo "$fruit"  
done

6. 字符串转小写

sh
my_name="jack"
echo ${my_name^^}  # JACK

7. 字符串替换

sh
my_name="Hello, World"
new_string=${my_string/World/Universe}  # 将第一个"World"替换为"Universe"  
echo "$new_string"                       # 输出:Hello, Universe!  

# 全部替换  
new_string=${my_string//o/O}             # 将所有的"o"替换为"O"  
echo "$new_string"                       # 输出:HellO, WOrld!

8. 字符串转数组

sh
string="apple,banana,cherry"  
IFS=',' read -r -a array <<< "$string"  # 将字符串以逗号分割转换为数组  
# 遍历数组  
for fruit in "${array[@]}"; do  
    echo "$fruit"  
done