여기에서 <<를 사용하여 문자열 형식을 지정하는 일반적인 방법 대신 제한된 문자열(<<-)을 사용하기로 선택하는 경우는 언제입니까?

여기에서 <<를 사용하여 문자열 형식을 지정하는 일반적인 방법 대신 제한된 문자열(<<-)을 사용하기로 선택하는 경우는 언제입니까?

The - option to mark a here document limit string (<<-LimitString) will suppress leading tabs (but not spaces) in the output.

"here" 메서드를 사용하여 명령을 처리할 때 누군가가 선행 탭을 제거하려는 이유가 무엇인지 궁금합니다. 출력의 가독성에 관한 것입니까, 아니면 출력을 다른 것에 전달하려는 경우 출력을 정리하는 것에 관한 것입니까?

답변1

소스 코드 가독성에 관한 것입니다. 를 사용하면 <<-다음과 같이 작성할 수 있습니다.

foo() {
    cat <<-EOF
        hello
        EOF
    echo do something else
}

바꾸다

foo() {
    cat <<-EOF
hello
EOF
    echo do something else
}

더 논리적인 들여쓰기를 제공합니다.

(SE는 게시물의 렌더링된 보기에서 탭을 공백으로 표시하므로 4개의 공백 블록에 탭이 있다고 상상해야 합니다. 또는 복사하여 붙여넣습니다.소스 코드에서, 원하는 경우 콘텐츠에 대한 혼란을 줄여야 합니다. )

내 생각에 "제한 문자열"이라는 문구는 여기 있는 문서의 닫는 구분 기호를 가리키는 것 같은데, 이는 항상 가지고 있는 것입니다. 추가로 변경된 사항은 탭 처리입니다 -. 또한 <<<here 문서가 아닌 비표준 here 문자열입니다.

.

관련 정보