whileループを使用してユーザーが入力した各文字を個別に出力するにはどうすればよいですか?

whileループを使用してユーザーが入力した各文字を個別に出力するにはどうすればよいですか?

ここに画像の説明を入力してください。

私は、ユーザーが6文字の単語を入力するまで、6文字の果物を入力するように依頼するためにUntilループを使用するbashスクリプトを作成しています。 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に似たシェルに移植可能で、bash-ismsは含まれていません。

次に、トラブルシューティングのために特定のツールを使用することを強制しない教師を見つけます。

おすすめ記事