我如何使用 while 循环将用户输入的每个字符单独输出给他们?

我如何使用 while 循环将用户输入的每个字符单独输出给他们?

在此输入图像描述

我正在编写一个bash脚本,它使用until循环不断要求用户输入6个字母的水果,直到他们输入一个有6个字母的单词。使用 for 循环将用户选择的水果输出给他们 10 次。

我发现很难使用 while 循环在新行上输出用户选择的水果的每个字符。

在此输入图像描述

答案1

fold -w 1 <<<"$fruit"

或者,便携式,

printf '%s\n' "$fruit" | fold -w 1

这将调用该fold实用程序,这是一个用于折叠长线的实用程序。我们让它-w 1在每个字符后面折叠线条,创造出您想要的效果。

正如您所注意到的,这不使用while。如果您正在解决某种形式的家庭作业,并且您需要使用while循环来传递它,然后执行以下操作:

printf '%s\n' "$fruit" | fold -w 1 |
while read -r character; do
    printf '%s\n' "$character"
done

它可以移植到任何类似 POSIX 的 shell,并且不包含任何 bash-ism。

然后尝试找一位不会强迫你使用特定工具解决问题的老师。

相关内容