📌  相关文章
📜  shell 脚本遍历字符串中的字符 - Shell-Bash (1)

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

Shell脚本遍历字符串中的字符

当我们需要对一个字符串中的每个字符进行操作时,就需要遍历该字符串中的每个字符。在Shell脚本中,遍历字符串中的字符可以通过以下三种方式实现。

1. 使用for循环遍历

可以使用for循环遍历字符串中的每个字符,示例代码如下:

string="Hello World"
for (( i=0; i<${#string}; i++ )); do
    echo "${string:$i:1}"
done

此处,${#string} 表示字符串 string 的长度,${string:$i:1} 表示从字符串 string 的第 i 个字符开始,截取 1 个字符。按顺序输出 string 中的每个字符。

2. 使用while循环遍历

可以使用while循环遍历字符串中的每个字符,示例代码如下:

string="Hello World"
i=1
while [ $i -le ${#string} ]; do
    echo "${string:$i-1:1}"
    i=$(( $i + 1 ))
done

此处,${#string} 同上,${string:$i-1:1} 表示从字符串 string 的第 i-1 个字符开始,截取 1 个字符。按顺序输出 string 中的每个字符。

3. 把字符串转为数组遍历

可以把字符串转为数组,然后使用for循环遍历数组,示例代码如下:

string="Hello World"
arr=(${string// / })
for s in "${arr[@]}"; do
    echo "$s"
done

此处,${string// / } 表示将字符串 string 中的空格替换为数组的分隔符,${arr[@]} 表示遍历数组 arr 中所有元素,按顺序输出 arr 中的每个元素(等同于 string 中的每个字符)。

以上三种方式,可以根据实际情况选择适合自己的方式来遍历字符串中的字符。