IFS='\n'
for i in "$(IFS='\n' printf 'abc\nxyz\n123 456\n')"; do
echo "????"
echo "$i"
done
echo "output"
echo "${args[@]}"
다음 출력:
????
abc
xyz
123 456
output
for 루프가 각 행을 반복하도록 하려면 어떻게 해야 합니까? IFS='\n'
명령이 이런 식으로 실행되지 않는 이유 는 무엇입니까 ?
답변1
큰따옴표는 "명령 대체"를 매개변수로 만듭니다. 다음을 사용하지 않고 시도해 보세요.
$ for i in $( printf 'abc\nxyz\n123 456\n'); do echo "????"; echo "$i"; done
????
abc
????
xyz
????
123 456
또한 IFS
설정은 "\"와 "n"이라는 두 문자를 포함하는 문자열입니다. 예를 들어 bash
, 시도해 보고 싶을 수도 있습니다 $'\n'
.