bash循环遍历字符串中的所有字符

时间:2015-04-12 19:09:38

标签: bash shell

我应该如何遍历字符串中的所有字符。

我的伪代码

stringVar="abcde"

for var in stringvar
{
   do some things with var
}

我需要的结果 一个

B'/ P>

C

d

我想循环所有变量,但我只能使用空白分割变量

 stringVar="a b c"


for var in stringVar; do
   echo $var
done;

结果

B'/ P>

C

但我不能用一个没有用空格分割的字符串。

该问题被标记为重复,但链接问题中没有其中一个答案(带有upvotes)..

2 个答案:

答案 0 :(得分:3)

您可以使用read

string="abcde"
while read -n 1 char ; do
    echo "$char"
done <<< "$string"

使用-n 1 read将一次读取一个字符。但是,输入重定向<<<会在$string的末尾添加换行符。

答案 1 :(得分:1)

stringVar="abcde"
for ((i=1;i<=${#stringVar};i++)); do
  echo ${stringVar:$i-1:1}
done

输出:

a
b
c
d
e