"<<-EOF"와 "<의 차이점은 무엇입니까

"<<-EOF"와 "<의 차이점은 무엇입니까

나는 이 주제를 검색했고 모든 결과에 대해 이야기했습니다 <<EOF. 하지만 사용된 스크립트는 보는데 <<-EOF인터넷 검색으로는 어디에서도 찾을 수 없습니다. 그렇다면 <<-EOFbash 스크립트 간의 차이점은 무엇입니까? <<EOF감사합니다.

답변1

<<-EOF구분된 문서의 선행 탭은 무시되지만 <<EOF그렇지 않습니다. 그러므로:

cat <<EOF
    Line 1
    Line 2
EOF

생산할 것이다

    Line 1
    Line 2

하지만

cat <<-EOF
    Line 1
    Line 2
EOF

생산하다

Line 1
Line 2

답변2

를 사용하는 경우 <<-EOFBourne Shell 매뉴얼 페이지를 권장합니다.

단, <<에 하이픈(-)이 추가된 경우:

  1. 쉘 입력을 읽기 전에 단어에서 선행 탭 문자를 제거하십시오(단, 인수 및 명령 대체가 단어에서 수행된 후).

  2. 선행 탭 문자는 쉘 입력을 읽을 때와 각 행을 단어와 비교하기 전에 제거됩니다.

  3. 쉘 입력은 문자 그대로 결과 단어와 일치하는 첫 번째 줄 또는 EOF로 읽혀집니다.

이를 <<-통해 여기에 있는 문서의 내용을 들여쓰기하여 가독성을 높일 수 있습니다.

관련 정보