이 명령이 예상대로 작동하지 않는 이유는 무엇입니까? [폐쇄]

이 명령이 예상대로 작동하지 않는 이유는 무엇입니까? [폐쇄]
cat $(echo this\\ list)

똑같아 보여야지

cat this\ list

그러나 그것은 진실이 아니다.

나는 내가 사용할 수 있다는 것을 안다

cat "$(echo this\\ list)"

하지만 여러 파일을 cat에 에코할 수는 없습니다.

첫 번째 명령이 작동하지 않는 이유는 무엇입니까?

답변1

다음을 통해 무슨 일이 일어나고 있는지 확인할 수 있습니다 set -x.

:> set -x
:> cat $(echo this\\ list)
++ echo 'this\' list
+ cat 'this\' list

:> cat this\ list
+ cat 'this list'

차이점은 두 개의 매개변수(예: 하나의 파일 과 다른 파일을 읽으려고 시도하는 것 ) 'this\' list가 있지만 하나의 매개변수(예: 다른 파일 이름)만 있다는 것입니다.catthis\list'this list'

다음을 수행해야 합니다.

:> cat "$(echo this\ list)"
++ echo 'this list'
+ cat 'this list'

관련 정보