如何在Unix Shell中遍历字符串中的每个字母

时间:2016-02-08 06:58:12

标签: bash shell unix

我试图通过读取命令迭代作为输入的字符串。我试图输出每个字母和每个字母的数量然后应该使用循环依次输出每个字母。例如,如果用户输入" picasso",则输出应为:

信1:p 信2:我 信3:c 信4:a 信5:s 信6:s 信7:o

这是我目前的代码:

new

我应该将输入放入数组吗?我还是编程循环的新手,但我发现无法弄清楚逻辑。

有什么建议吗?感谢。

3 个答案:

答案 0 :(得分:9)

结合dtmilano和patrat的答案会给你:

read -p "Please enter a word: " word

for i in $(seq 1 ${#word})
do
 echo "Letter $i: ${word:i-1:1}"
done

$ {#word}为您提供字符串的长度。

答案 1 :(得分:2)

使用子字符串运算符

 ${word:i:1}

获得单词的第i个字符。

答案 2 :(得分:1)

查看bash中的seq机制

例如:

seq 1 10

会给你

1 2 3 4 5 6 7 8 9 10

您可以尝试使用字母

echo {a..g}

结果

 a b c d e f g

现在你应该处理你的问题