서브 쉘을 인용하고 결과를 에코로 전달할 때 줄 바꿈이없는 이유는 무엇입니까? | grep png)출력합니다. 2015-05-15-200203_1920x1080_scrot.png 2015-05-16-025536_1920x1080_scrot.png (파일 이름, 단어

ls | grep pnggrep의 출력을 수행 하면 다음과 같습니다.

2015-05-15-200203_1920x1080_scrot.png
2015-05-16-025536_1920x1080_scrot.png

(파일 이름, 줄 바꿈, 파일 이름, 줄 바꿈)

그런 다음 echo $(ls | grep png)출력합니다.

2015-05-15-200203_1920x1080_scrot.png 2015-05-16-025536_1920x1080_scrot.png

(파일 이름, 단어 분할, 파일 이름, 줄 바꿈에서 !! 에코에서 !!)

괜찮습니다. 그러나 단어 분리를 방지하기 위해이 작업을 수행 echo "$(ls | grep png)"하면 출력은 다음과 같습니다.

2015-05-15-200203_1920x1080_scrot.png
2015-05-16-025536_1920x1080_scrot.png

그리고 내 질문은 두 번째 줄 바꿈이 어디에 있습니까?



답변

의 개행 문자입니다. 후행 개행을 억제하여을 echo사용하여 확인할 수 있습니다 echo -n.

echo -n "$(ls | grep png)"

명령 대체는 모든 마지막 줄 바꿈을 제거하고 마지막 줄 바꿈이에 의해 추가되었으며 여기서 할 echogrep이 없습니다.