다음 명령은 무엇을 합니까? 특히 -
입력 리디렉션의 역할을 이해하지 못합니다.
cat <<-EOF | command $argument
first option
second option
EOF
-
입력 리디렉션에 필수인가요?
답변1
에서 man bash
:
리디렉션 연산자가 <<-인 경우 입력 줄과 구분 기호가 포함된 줄에서 모든 선행 탭 문자가 제거됩니다. 이를 통해 쉘 스크립트의 문서를 자연스럽게 들여쓰기할 수 있습니다.
$ cat <<-EOF
foo
bar
EOF
foo
bar
답변2
여기에 있는 문서에 대한 귀하의 질문과 관련하여 위의 Chris 답변에 뭔가를 추가하고 싶습니다.
cat - filename <<-EOF
foo
bar
EOF
위의 코드를 보면 2가 있습니다 -
. 둘 다 다른 목적을 가지고 있습니다. 1) -EOF
구분 기호에서 선행 탭 문자를 자릅니다.
2) cat - filename
: 기본적으로 첫 번째 표준 입력 내용(구분 기호를 찾을 때까지) + 파일 이름 내용을 인쇄합니다. cat은 -
표준 입력 및 파일 내용의 순서를 제어하기 위해 특별히 이를 제공합니다 . 위의 경우, 변경 명령은 cat filename -
파일 이름과 표준 입력의 내용을 인쇄합니다(구분 기호를 찾을 때까지).