이 명령 티 <<-'EOF'에서 하이픈(‐)의 목적은 무엇입니까? [복사]

이 명령 티 <<-'EOF'에서 하이픈(‐)의 목적은 무엇입니까? [복사]

다음 명령을 보았습니다.

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxxxxxxx.mirror.aliyuncs.com"]
}
EOF

하이픈(‐)은 무엇에 사용되나요? 하이픈을 제거해도 잘 작동합니다.

답변1

하이픈/대시는 이 문서에서 선행 탭 문자를 제거하도록 쉘에 지시하는 데 사용됩니다. 이것은 문서화되어 있습니다.POSIX를 통해설명서의 일부로 여기로 리디렉션됩니다.

리디렉션 연산자가 인 경우 <<-입력 줄과 후행 구분 기호가 포함된 줄에서 모든 선행 문자를 제거해야 합니다. <tab>[...]

이 기능을 사용하면 약간 더 예쁜 스크립트를 만들 수 있습니다.

while some-condition; do

    some-command <<-END_INPUT
    some data
    goes here
    END_INPUT

done

(여기서 문서의 모든 줄과 END_INPUT구분 기호가 포함된 줄은 탭을 사용하여 들여쓰기됩니다.)

while some-condition; do

    some-command <<END_INPUT
some data
goes here
END_INPUT

done

관련 정보