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가 포함되어 있지 않습니다.

그런 다음 문제 해결을 위해 특정 도구를 사용하도록 강요하지 않는 교사를 찾으십시오.

관련 정보