명령 대체
또 다른 옵션은 명령 대체 를 사용하는 것 입니다. 명령을 감싸면 명령 $()
이 실행되고 명령이 출력으로 바뀝니다.
cat $(find ./inhere -size 1033c 2> /dev/null)
될 것입니다
cat ./inhere/file1 .inhere/file3
이것은 백틱과 함께 이전 스타일의 줄 바꿈 명령을 사용하는 것과 다소 비슷합니다.
cat `find ./inhere -size 1033c 2> /dev/null`
위에 링크 된 문서에서 더 자세한 내용
Bash는 서브 쉘 환경에서 명령을 실행하고 명령 대체를 명령의 표준 출력으로 바꾸고 후행 줄 바꿈을 삭제하여 확장을 수행합니다. 포함 된 줄 바꿈은 삭제되지 않지만 단어 분리 중에 제거 될 수 있습니다. 명령 대체 $(cat file)
는 동일하지만 더 빠른 것으로 대체 될 수 있습니다 $(< file)
.
치환 구식 형태 역 인용 부호가 사용되는 경우, 백 슬래시 다음 경우를 제외하고 그 뜻을 그대로 갖고있는 $
, `
또는 \
. 백 슬래시 앞에 있지 않은 첫 번째 인용 부호는 명령 대체를 종료합니다. $(command)
양식을 사용할 때 괄호 안의 모든 문자가 명령을 구성합니다. 아무것도 특별하게 취급되지 않습니다.
대체 명령이 중첩 될 수 있습니다. 역 따옴표로 묶인 양식을 사용할 때 중첩하려면 내부 역 따옴표를 백 슬래시로 이스케이프 처리하십시오.
큰 따옴표 안에 대체가 나타나면 단어 분리 및 파일 이름 확장이 결과에서 수행되지 않습니다.
사용법에 대한 좋은 예는 이 다른 답변 을 참조하십시오 .