서브 쉘을 인용하고 결과를 에코로 전달할 때 줄 바꿈이없는 이유는 무엇입니까?


9

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

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

답변:


8

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

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

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


"명령 대체는 후행 줄 바꿈을 모두 제거합니다." 감사합니다
MichalH
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.