📅  最后修改于: 2023-12-03 14:47:26.576000             🧑  作者: Mango
当我们需要对一个字符串中的每个字符进行操作时,就需要遍历该字符串中的每个字符。在Shell脚本中,遍历字符串中的字符可以通过以下三种方式实现。
可以使用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
中的每个字符。
可以使用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
中的每个字符。
可以把字符串转为数组,然后使用for循环遍历数组,示例代码如下:
string="Hello World"
arr=(${string// / })
for s in "${arr[@]}"; do
echo "$s"
done
此处,${string// / }
表示将字符串 string
中的空格替换为数组的分隔符,${arr[@]}
表示遍历数组 arr
中所有元素,按顺序输出 arr
中的每个元素(等同于 string
中的每个字符)。
以上三种方式,可以根据实际情况选择适合自己的方式来遍历字符串中的字符。