关于shell:bash循环遍历字符串中的所有字符

bash loop through all chars in string

本问题已经有最佳答案,请猛点这里访问。

如何循环遍历字符串中的所有字符。

我的伪代码

1
2
3
4
5
6
stringVar="abcde"

for var in stringvar
{
   do some things with var
}

结果我需要一

C

D

我想循环所有的var,但是我只能让它与空白分割的var一起工作,就像

1
2
3
4
5
6
 stringVar="a b c"


for var in stringVar; do
   echo $var
done;

结果

C

但我不能为一个没有空格分隔的字符串做这个。

该问题标记为重复,但链接的问题中没有一个答案(加上投票)。


你可以使用read,嗯。

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

利用-n 1read会读一个字符,一个小时。然而,在输入redirection <<<A adds换行符结束$string大学。


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

输出:

1
2
3
4
5
a
b
c
d
e