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
가 있지만 하나의 매개변수(예: 다른 파일 이름)만 있다는 것입니다.cat
this\
list
'this list'
다음을 수행해야 합니다.
:> cat "$(echo this\ list)"
++ echo 'this list'
+ cat 'this list'