![서브쉘을 인용하고 결과를 에코에 전달하는 끝에 개행 문자가 없는 이유는 무엇입니까?](https://linux55.com/image/65209/%EC%84%9C%EB%B8%8C%EC%89%98%EC%9D%84%20%EC%9D%B8%EC%9A%A9%ED%95%98%EA%B3%A0%20%EA%B2%B0%EA%B3%BC%EB%A5%BC%20%EC%97%90%EC%BD%94%EC%97%90%20%EC%A0%84%EB%8B%AC%ED%95%98%EB%8A%94%20%EB%81%9D%EC%97%90%20%EA%B0%9C%ED%96%89%20%EB%AC%B8%EC%9E%90%EA%B0%80%20%EC%97%86%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
grep을 실행하면 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
(파일명, 단어분할 공백, 파일명, 개행문자!! From echo!!)
괜찮습니다. 하지만 단어 분리를 방지하기 위해 이렇게 하면 echo "$(ls | grep png)"
결과는 다음과 같습니다.
2015-05-15-200203_1920x1080_scrot.png
2015-05-16-025536_1920x1080_scrot.png
제 질문은 두 번째 개행 문자(하나는 grep에서, 하나는 echo에서 가져와야 함)는 어디에 있습니까?
답변1
이것은 에서 오는 줄 바꿈입니다 echo
. 다음을 echo -n
사용하여 후행 줄 바꿈을 억제하여 이를 확인할 수 있습니다.
echo -n "$(ls | grep png)"
명령 대체모든 후행 개행 문자를 제거합니다. 마지막 개행 문자는 에 의해 추가되었으며 echo
여기서는 grep
관련이 없습니다.