如何在Linux - bash shell中逐字母打印字符串



我有一个字符串,想要逐行打印每个字符。

输入:

str="Hello World"

预期输出:

H
e
l
l
o
W
o
r
l
d

我尝试下面的脚本,得到不同的输出

#!/bin/bash
txt="Hello World"
for i in ${txt[*]}
do
echo $i
done

我输出:

Hello
World

几点想法:

使用read's的能力一次读取n字符:

while read -r -n1 i
do
echo "$i"
done <<< "$str"

使用bash's子串能力:

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

str馈送给grep作为here-string:

grep -o . <<< "${str}"

所有这些生成:

H
e
l
l
o
W
o
r
l
d

最新更新