📜  Bash字符串(1)

📅  最后修改于: 2023-12-03 14:59:30.384000             🧑  作者: Mango

Bash字符串介绍

在Bash脚本中,字符串是必不可少的一部分。字符串可以包含文本、数字、变量以及其他字符。本文将介绍如何在Bash中使用字符串,并演示一些常见的字符串操作。

定义字符串

字符串可以用单引号、双引号和反引号来定义。

单引号用于定义纯字符串,保留所有的特殊字符和转义符号:

str='Hello World!'

双引号用于定义字符串并可以对其中的变量进行扩展:

name='Alice'
str="Hello, ${name}!"

反引号用于执行命令并将输出作为字符串:

str=`date`
字符串拼接

可以使用+=+来拼接字符串:

str1='Hello'
str2='World!'
str3="$str1 $str2"
echo $str3       # 输出: Hello World!

str4='My name is '
str4+='Alice'
echo $str4       # 输出: My name is Alice
获取子字符串

使用${str:pos:len}可以获取一个字符串的子字符串。其中,pos表示子字符串的起始位置,len表示子字符串的长度。若省略len,则默认获取从起始位置开始到字符串结尾的所有字符。

str='hello world'
echo ${str:0:5}    # 输出: hello
echo ${str:6}      # 输出: world
字符串替换

使用${str/old/new}可以替换字符串中的第一个匹配项。使用${str//old/new}可以替换字符串中的所有匹配项。

str='hello world'
echo ${str/o/u}    # 输出: hellu world
echo ${str//o/u}   # 输出: hellu wurld
删除子字符串

使用${str#substr}可以删除字符串开头的子字符串。使用${str%substr}可以删除字符串结尾的子字符串。

str='hello world'
echo ${str#he}     # 输出: llo world
echo ${str%ld}     # 输出: hello wor
判断子字符串

使用[[ $str == *substr* ]]可以判断字符串中是否包含子字符串。

str='hello world'
if [[ $str == *hello* ]]
then
    echo 'The string contains "hello".'
else
    echo 'The string does not contain "hello".'
fi

if [[ $str == *hi* ]]
then
    echo 'The string contains "hi".'
else
    echo 'The string does not contain "hi".'
fi
结论

本文介绍了如何在Bash中使用字符串,并演示了一些常见的字符串操作。希望读者可以通过本文对Bash字符串有更深入的了解。